Beispiel #1
0
    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)
Beispiel #2
0
 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]))