Debugging 使用Visual Studio代码使用GDB调试多个符号

Debugging 使用Visual Studio代码使用GDB调试多个符号,debugging,gdb,stm32,bootloader,debug-symbols,Debugging,Gdb,Stm32,Bootloader,Debug Symbols,我正在做一个STM32项目,它有一个引导加载程序。微控制器使用引导加载程序引导,然后跳转到应用程序。为了在跳转操作后正确调试应用程序,我使用下面的GDB命令: add-symbol-file application.elf 0x080603B0 使用上面的命令,我可以毫无问题地获得应用程序的所有调试符号。我可以调试我想要的任何东西 最近,我在两个项目中都添加了一个名为foo.c的源文件。在此文件中,有一个名为bar的变量。项目已成功编译并链接,没有任何问题。到目前为止,一切都很好。当我在引导加

我正在做一个STM32项目,它有一个引导加载程序。微控制器使用引导加载程序引导,然后跳转到应用程序。为了在跳转操作后正确调试应用程序,我使用下面的GDB命令:

add-symbol-file application.elf 0x080603B0
使用上面的命令,我可以毫无问题地获得应用程序的所有调试符号。我可以调试我想要的任何东西

最近,我在两个项目中都添加了一个名为
foo.c
的源文件。在此文件中,有一个名为
bar
的变量。项目已成功编译并链接,没有任何问题。到目前为止,一切都很好。当我在引导加载程序代码中调试
bar
时,我可以正确地看到它的值,但是当我跳转到应用程序并尝试在应用程序中调试
bar
后,监视窗口会显示错误的值(因为应用程序端的bar地址不同)

我转储了两个可执行文件(bootloader.elf和application.elf),并验证了每个可执行文件中的
bar
地址是否不同,这是正常的。我注意到每个可执行文件中的
bar
的绝对地址,并调试了这些绝对地址。小提琴。。。我为每个
变量提供了正确的值

我正在使用VisualStudio代码的调试功能,它使用GDB和openocd。我的调试配置似乎是正确的,因为我可以调试一切,除非有重复的符号

我怀疑调试多个符号有困难

当我有多个符号时,如何调试我的项目?我的情况有什么问题?我如何解决这个问题