删除add-symbol-file加载的符号

时间:2013-09-05 04:43:37

标签: gdb embedded

我正在调试U-boot,在DRAM初始化完成后,代码从内部RAM重新定位到DRAM。因此,图像符号在不同位置(内部RAM地址空间和DRAM地址空间)加载两次。当我尝试创建断点时,gdb为两个地址空间添加了两个断点。问题是硬件断点的数量是有限的。目前,我通过删除较旧的断点来添加新的断点。我找到了一种方法来卸载(删除)早期加载的符号文件(映射到内部RAM的符号)。

任何建议都表示赞赏。先谢谢!

2 个答案:

答案 0 :(得分:5)

我在GDB的补丁上工作,删除了用户添加的符号文件。这是一个叫做的新命令 除去非符号文件:

remove-symbol-file FILENAME
remove-symbol-file -a ADDRESS
  Remove a symbol file added via add-symbol-file.  The file to remove
  can be identified by its filename or by an address that lies within
  the boundaries of this symbol file in memory.

补丁在GDB的主分支[1]中合并,因此应该在GDB 7.7中可用。您可以在此期间使用最新的开发源构建GDB:https://www.gnu.org/software/gdb/current/

[1] http://sourceware.org/ml/gdb-patches/2013-10/msg00891.html

答案 1 :(得分:4)

您可以在不带参数的情况下运行symbol-file

Reading symbols from /tmp/foo...done.
(gdb) symbol-file
Discard symbol table from `/tmp/foo'? (y or n) y
No symbol file now.
(gdb) symbol-file foo
Reading symbols from /tmp/foo...done.
(gdb) symbol-file
Discard symbol table from `/tmp/foo'? (y or n) y
No symbol file now.