debugging 为什么软控制台可以使用带有加载符号选项的JTAG调试发布版本?

stszievb  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(119)

这是一个好奇的问题。
我首先在SoftConsole中构建了我的项目,并激活了debug设置,然后我使用eclipse在cmd的命令行中构建了相同的项目(eclipsec.exe)。我没有包含用于调试的-debug标志(所以我假设没有调试信息被放入可执行文件中)。然后我删除了Soft Console创建的调试文件夹,我创建了一个新的调试文件夹,并将我的非调试可执行文件放入其中。然后,我打开软控制台,进入调试配置......,选择我的项目,然后进入启动菜单,选择加载符号。然后我使用JTAG调试它,就像它是一个正常的调试构建一样,即使我创建了一个没有调试信息的程序。
我想知道为什么这是可能的。我没有在可执行文件中包含调试符号。软控制台是否在加载符号选项打开的情况下通过JTAG传输这些调试符号?如果是这样,无论如何加载符号,发布版本和调试版本之间有什么区别?
对于更多的上下文,我在创建可执行文件时使用了Eclipse CDT工具。我不知道这是否有助于添加调试信息,尽管没有显式地告诉添加它。我还查看了是否有gcc提供的strip选项(-s或-strip),但我似乎找不到等效的选项(这就是为什么我假设它是“striped”生成的)。

tcomlyy6

tcomlyy61#

在加载符号选项打开的情况下,软控制台是否通过JTAG传输这些调试符号?
不,它们被gdb用来知道你的代码行在哪里,变量地址和调试器需要的其他信息,你的micro被“普通的”二进制可执行文件闪存。
想象一下,我的ARM Cortex-M4 elf文件差不多有10 MB,micro只有1 MB的FLASH内存,它能完全加载吗?

相关问题