我有一个过程的回溯。并且我想确定调用跟踪中调用的一个函数的参数的值,我有.o文件并且我反汇编它,所以我有该特定函数的汇编程序,我该如何计算函数的值&# 39;通过回溯和汇编代码传递参数?它位于ARM平台上,我对ARM调用跟踪和汇编代码并不熟悉。
答案 0 :(得分:0)
如果代码是用C语言编写的,则此信息不能仅从可执行映像中获得,原因很简单,C不会破坏函数名称符号以编码函数参数类型。
使用gdb进行简单的实验表明,如果使用调试标志-g
编译C代码,gcc会将足够的信息放入可执行文件的gdb调试记录中,以便能够找出函数参数类型,并在回溯中显示函数参数。
但是,如果可执行文件未使用-g
进行编译,则可执行文件中的所有内容都是函数名称及其地址,以及gdb可以显示的所有内容,从coredump回溯。
因此,如果您正在使用包含C代码的.o文件,而没有任何调试内容,那么没有什么可以显示函数参数是什么,