嵌入式中 lst 文件的创建与调试价值

嵌入式中 lst文件的创建与调试价值

在使用 eclipse 进行嵌入式开发时,有时会遇到程序跳入异常服务程序的情况。这种情况一旦出现,往往让人有点无处着力的感觉。可如果你了解 lst 文件,那么在这种情况下它往往能起到关键的作用。

lst 文件实际是使用 objdump 反汇编 elf 文件得到的输出文件,它拥有比 map 文件更详细的信息。如果你的程序中加入了调试信息,那么你可以在 lst 中看到每一条指令的地址。借助 lst 文件,同时通过查看栈帧结构(可以通过查看相应的手册来确定栈帧的组成),通过在 lst 文件中查找 lr 的地址所在的位置,你就能立刻定位到问题。

你可以在 eclipse 的工程配置中的 Toolchains 子菜单中选择 Create extended listing 选项,应用设置后切换到 Tool Settings 子菜单,你会发现下方多了一个 GNU ARM Cross Create Listing 选项,你可以在这个选项中指定更详细的信息。

下面是一个典型的命令行输出:

Invoking: GNU ARM Cross Create Listing
arm-none-eabi-objdump --source --all-headers --demangle --file-headers --line-numbers --wide "hello world.elf" > "hello world.lst"
Finished building: hello world.lst

上述命令行使用 objdump 反汇编 elf 文件,然后将结果重定向为 lst 文件。你也可以直接使用命令行生成 lst 文件。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值