Objconv:跨平台对象文件转换与反汇编工具指南

0 下载量 98 浏览量 更新于2024-07-14 收藏 523KB PDF 举报
"Objconv 是一个跨平台的开发工具,用于转换和修改对象文件,以及对所有 x86 和 x86-64 平台的 object 和可执行文件进行转储和反汇编。该工具由 Agner Fog 在 2016 年创建,遵循 GNU General Public License。它涵盖了从基础介绍、文件类型到命令行语法、警告和错误控制、文件格式转换、符号修改、库管理、文件转储、文件反汇编等多个方面。文档还包含了针对 AVX-512 和 Knights Corner 指令的初步指令语法,以及解答了一些常见问题。" Objconv 的主要功能包括: 1. **文件类型**:Objconv 可处理多种类型的文件,如编译器生成的对象文件、汇编器生成的文件,以及不同平台的可执行文件。 2. **命令行语法**:用户可以通过命令行参数指定不同的操作,例如转换文件格式、控制输出内容等。 3. **警告和错误控制**:在执行转换或操作时,Objconv 提供了警告和错误控制机制,帮助用户识别并解决问题。 4. **文件格式转换**:Objconv 支持在不同平台间转换文件格式,这在跨平台开发中特别有用。 5. **修改符号**:工具允许用户修改对象文件中的符号信息,这可能包括重命名、删除或添加符号。 6. **库管理**:对于函数库的开发,Objconv 提供了管理和调整库内容的功能。 7. **文件转储**:Objconv 可以将文件内容转储成人类可读的形式,便于分析和调试。 8. **文件反汇编**:它能够反汇编二进制代码,生成汇编语言表示,帮助理解代码结构。Objconv 还提供了对 AVX-512 和 Knights Corner 指令集的初步支持。 9. **兼容性问题**:尽管 Objconv 具有广泛的平台支持,但可能会遇到某些架构或指令集的兼容性问题,文档中对此进行了讨论。 10. **FAQ**:常见问题部分解答了关于图形用户界面、可转换的文件类型、对 ARM 或 PPC 等其他架构的支持等问题。 Objconv 是一个强大的工具,尤其对于那些需要在多种硬件架构之间进行移植或需要深入理解二进制代码的开发者来说,它的功能非常实用。通过其灵活的命令行接口和详细的文档,用户可以高效地完成对象文件和可执行文件的处理工作。

# 考虑增加某个计数,会不会提高socre import numpy as np from sklearn.linear_model import LinearRegression # from sklearn.metrics import mean_squared_error file_soft = "/home/maillee/chip_temp_predict/data_handle/ftc_to_select_event/soft_event_ftc.xlsx" file_hard = "/home/maillee/chip_temp_predict/data_handle/ftc_to_select_event/hard_event_ftc.xlsx" file_hard_cache = "/home/maillee/chip_temp_predict/data_handle/ftc_to_select_event/hard_cahce_event_ftc.xlsx" pd_data_soft = pd.read_excel(file_soft,index_col=0) pd_data_hard = pd.read_excel(file_hard,index_col=0) pd_data_hard_cache = pd.read_excel(file_hard_cache,index_col=0) pd_y = pd_data_hard_cache['cores-power'] not_selected_event = ['branch-misses','bus-cycles','cache-misses','instructions', 'ref-cycles','L1-dcache-load-misses', 'L1-dcache-stores','L1-icache-load-misses', 'LLC-load-misses','LLC-store-misses','LLC-stores', 'branch-load-misses','dTLB-load-misses','dTLB-loads', 'dTLB-store-misses','dTLB-stores','iTLB-load-misses', 'iTLB-loads','node-load-misses','node-loads','node-store-misses', 'node-stores','alignment-faults','bpf-output','cgroup-switches', 'cpu-migrations','dummy','emulation-faults','major-faults','minor-faults', 'page-faults','task-clock',] count =0 pd_x = pd.concat([pd_data_hard,pd_data_hard_cache,pd_data_soft],axis=1,join='outer') for i in not_selected_event: count = count+1 pd_x =pd.concat(pd_x[i],pd_x[['cpu-clock','context-switches', 'branch-instructions','cpu-cycles','cache-references', 'L1-dcache-loads','LLC-loads','branch-loads']],axis=1,join='outer') model = LinearRegression().fit(pd_x, pd_y) # print(model.score(pd_x,pd_y)) #R2 score y_pred = model.predict(pd_x) # plt.plot(y_pred) # plt.plot(pd_y) mse = mean_squared_error(pd_y, y_pred) print(count,i,model.score(pd_x,pd_y), mse,'\n') woatis wring

2023-06-07 上传