def add_debug_memory_info_in_code(self, path): self.path = path file_c_list = FileUtils.FileUtils.get_files_from_path(self.path) for file_c in file_c_list: if FileUtils.FileUtils.is_file_with_suffix(file_c[0], 'c') \ or FileUtils.FileUtils.is_file_with_suffix(file_c[0], 'h'): include_str = '#include \"' depth = file_c[1] for i in range(depth): include_str += '../' include_str += 'python_record_memory.h' include_str += '\"\n' FileUtils.FileUtils.rename(file_c[0], file_c[0] + '_bk') file_handler = FileUtils.FileHandler(file_c[0]) file_handler.append_plain(include_str) FileUtils.FileUtils.read_line_iterator( file_c[0] + '_bk', self._add_debug_memory_info_in_code, args=file_handler) record_func_filename_h = FileUtils.FileUtils.path_join_filename( path, 'python_record_memory.h') record_func_filename_c = FileUtils.FileUtils.path_join_filename( path, 'python_record_memory.c') FileUtils.FileUtils.append_plain(record_func_filename_h, self.record_address_code_h) record_func_code_handler = FileUtils.FileHandler( record_func_filename_c) record_func_code_handler.append_plain(self.record_malloc_code_include) record_func_code_handler.append_plain(self.record_malloc_code_func) record_func_code_handler.append_plain(self.record_free_code_func)
def log_analyse(self, filename_log, filename_dst=None): log_file_handler = FileUtils.FileHandler(filename_log) line = 0 log_file_handler.read_line_iterator( self._log_analyse, args=[self.address_info_dict, line]) for item in self.address_info_dict: if filename_dst is not None: FileUtils.FileUtils.append_plain( filename_dst, str(self.address_info_dict[item]) + '\n') else: print(item + ' -- ' + str(self.address_info_dict[item]))