2012-04-02 101 views
1

C或C++在调试一个核心转储,即,如果我们留下了一个核心转储文件,并尝试使用该核心文件调试是有办法,我们可以看到的最后几行堆栈跟踪只显示函数调用。源线在调试核心转储

用于例如:在dbx中或GDB list命令调试运行过程中

list Display lines of a source file

会给代码的一部分目前正在execution.in以同样的方式我们可以选择,而寻找到核心转储? 我正在研究solaris mdb

回答

0

如果使用-g选项编译,您可以显示源代码行。在dbx中,可以使用use命令来设置dbx源目录。

您可以使用list(l)命令来显示源代码行。

help命令来学习如何使用的dbx和gdb命令。

0

如果您在dbx中使用use命令正确设置了源路径,或者使用-I选项启动了它,那么在读取源代码行时调试核心转储和正常进程几乎没有区别。

2

list命令在gdb应提供源代码行号的细节和相应的源从核心文件列表,如果:

  • 可执行用例如-g在gcc和克启用调试符号(++编译)
  • 可执行的非剥离版本可用(即,一直没有通过运行strip删除调试信息)
  • 调试器能够找到相关的源码文件

调试器应该仍然能够提供文件和行号,即使它是无法找到源文件的行号信息形成的调试符号的一部分。该信息应通过bt(backtrace)命令以及info symbol命令提供。即使是从剥离可执行文件生成的核心文件,只要你有机会获得一个未剥离的版本,你可以加载在gdb,以及指定的核心文件

注意。

看看章13和gdb manual 15,以协助给予你的源文件GDB访问。