0

我们正在尝试为特定环境实现定制的 gdb 工具。我们有 Linux-Centos 操作系统。

尝试通过一些自定义来实现 gdb 功能。我们的工具将附加到 PID(已经运行的进程),它将开始调试会话。我们想读取符号信息(符号表)并打印尽可能多的符号信息(主要是数据类型、地址和大小)。

我们可以在 gdb 中使用 readelf、file 命令读取符号表,并且可以打印一些与局部/全局变量相关的信息。但是我们无法找到打印变量地址和大小的确切命令。

4

1 回答 1

1

您可以在 gdb 的表达式中使用ptype命令和sizeof :

(gdb) ptype exit
type = int ()
(gdb) print sizeof(argc)
$1 = 4

这当然需要 debuginfo 而不仅仅是符号表可用,例如对于 ELF,这需要.debug_{aranges,info,abbrev,...}部分而不仅仅是.shstrtab.symtab.strtab

于 2013-01-03T03:40:14.337 回答