7

我正在尝试使用 gdb 调试 C 程序。我使用的编译标志如下

-fno-strict-aliasing -Wall -DHAVE_CONFIG_H -DNO_OLD_ERF_TYPES -Werror  -Wredundant-decls -O2 -DNDEBUG -DBYTESWAP -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g 

我使用的编译器版本是

gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我调试为

libtool gdb mytool

我设置断点并运行程序。执行不会在断点处停止,我收到以下警告。

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x2aaaaaaab000
[Thread debugging using libthread_db enabled]
4

2 回答 2

0

尝试删除所有目标文件并重新编译。我遇到了同样的问题,无法使用 gdb 调试我的程序。我使用cmake编译并能够通过运行解决问题make clean; make

于 2016-02-25T16:15:43.783 回答
-1

尝试删除 -O2 和 -DNDEBUG。

-O2 将优化级别设置得更高一些,因此编译后的代码可能无法表示它在源文件中的写入方式,并且 NDEBUG 标志可能会覆盖 -g

于 2014-12-03T08:21:20.923 回答