我正在做嵌入式软件开发。从本质上讲,我有3个不同的应用程序同时运行,它们保证在不同的虚拟地址范围内运行,例如
App 1运行在0x10000000 - 0x20000000,App2运行在0x20000000 - 0x30000000,以此类推。
一般来说,GDB似乎只接受一个符号定义文件。但在这种情况下,我可能会加载所有3个定义,而不会发生冲突。我怎样才能做到这一点呢?
其次,假设我有3个应用程序都在相同的虚拟范围内运行,但每个应用程序在运行时都有所不同,例如,假设一个地址位置包含它们的地址空间ID,这给了我关于哪个应用程序在那个时候加载的线索。
我如何告诉GDB加载所有3个符号定义,同时根据这些信息自动切换定义?
发布于 2010-08-14 10:51:49
你试过了吗?
add-symbol-file app1 0x10000000
add-symbol-file app2 0x20000000
add-symbol-file app3 0x30000000由于所有的地址都是不同的,而且所有的应用程序都是同时加载的,所以我不太明白你所说的“关于哪个应用程序在那个时候加载的线索”是什么意思。
如果应用程序实际上不是同时加载的,GDB overlay support可能会有所帮助。
https://stackoverflow.com/questions/3467141
复制相似问题