gdb无法list源码_gdb list 命令不显示源码

hacker|
95

文章目录:

我在windows上用MinGW的gdb其中list命令用不了

Breakpoint 1 at 0x401317

很可能你的程序编译时没有加入-g选项,加入-g试一下

为什么你的执行程序里没有行号信息呢,正常的应该是

Breakpoint 1 at 0x401317:file xxx

能否给出更多信息

GDB调试无法加载源码

你使用Makefile编译调试的吧。

注意Makefile的写法,一个空格也会造成错误的。

在编译的代码中添加 -g 和 -Wall 。-g是为了GDB调试用的,-Wall可以显示全部的警告,对你分析程序很有好处。

这个Segemental fault 是段错误,造成这个错误的原因有很多,可能是内存 或者 栈溢出,出现这个错误需要功过GDB反复调试,查看错误原因。

gdb加载动态库成功,但是不能显示动态库中的源码(gdb+gdbserver)

因为具体的给的不够详细,不清楚你遇到的情况。

如果仅从断点上看,应该就是CApartment.cpp:55

但是,如果你的程序编译的时候,不是-O0,那个可能回不到源码,只能看汇编。

1、有时候(很少)就是编译器的错误。

2、还有可能就是你调试的程序和你的源码不匹配

3、你的程序已经崩溃了,破坏了堆栈或者GDB需要的数据。

4、这个地方有特殊的定位信息

5、其他情况,还是比较多的,经常遇到。

如果懂汇编,最好看看汇编。

如果不懂,看看那一条语句是最后一条能够跟踪的语句。

仔细看看最后一条语句的所有变量,应该能猜出来是什么问题。

3条大神的评论

  • avatar
    访客 2022-07-05 下午 04:39:36

    所有变量,应该能猜出来是什么问题。

  • avatar
    访客 2022-07-06 上午 01:40:09

    文章目录:1、我在windows上用MinGW的gdb其中list命令用不了2、GDB调试无法加载源码3、gdb加载动态库成功,但是不能显示动态库中的源码(gdb+gdbserver)我在windows上用MinGW的gdb其中list命令用不了Breakpoint 1 at 0x401317很可能

  • avatar
    访客 2022-07-05 下午 08:26:37

    的警告,对你分析程序很有好处。这个Segemental fault 是段错误,造成这个错误的原因有很多,可能是内存 或者 栈溢出,出现这个错误需要功过GDB反复调试,查看

发表评论