前期信息
- 编译生成.elf文件以后,反汇编
arm-eabi-objdump -D ***.elf > ***.dis
可以生成汇编文件
2. 查看.dis汇编文件,例如

可以看到最前面一列为程序地址
使用
$ arm-eabi-addr2line -Cfe ***.elf 080400b0
dump_r7_callback
/media/data/MTK/MT7682/mt7682/sdk/project/mt7682_hdk/apps/lock/GCC/../../../../../project/mt7682_hdk/apps/lock/../common/src/arm_backtrace.c:102
就可以得到对应的代码位置.
所以如果要回溯堆栈,那么就要能得到类似080400b0这样的地址堆栈
然后使用addr2line来回溯到sourcecode的堆栈
编译命令
编译cortex-m4的thumb代码
arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -c -o main.o main.c
编译arm代码
arm-none-eabi-gcc -c -o main.o main.c
疑问
arm模式编译的代码:
arm-none-eabi-gcc -fno-omit-frame-pointer -c -o main.o main.c
arm-none-eabi-objdump -d main.o

最低0.47元/天 解锁文章
1996

被折叠的 条评论
为什么被折叠?



