有效地使用gdb

时间:2011-02-07 03:14:43

标签: debugging gdb

当我处理使用-ggdb标志编译的ELF二进制文件时,我习惯于非常有效地使用gdb。但是,当我面对normal non-stripped二进制文件时,我遇到了一些困难。

  1. 我可以在main处设置断点,但是如果我需要将断点设置为从main的起点开始的固定偏移量(比如10行)呢?
  2. 通常我会将字符数组的地址(比如buf)称为print &buf。但是,在当前情况下,我收到一条消息,指出在当前上下文中找不到buf
  3. 我如何处理上述问题?如果你能提供一些阅读材料,那将是很棒的。

1 个答案:

答案 0 :(得分:4)

要获取源行号和变量信息,需要使用调试符号(-ggdb或类似代码)编译代码。编译没有调试符号但未解压缩保留在函数和全局变量名称中,但没有别的。剥离可执行文件甚至删除了其中一些。因此,在回答您的问题时,如果不使用-g进行编译,则无法执行您想要的操作。