我将 binutils 构建为:
$ mkdir debug
$ cd debug
$ ../configure --prefix=/dbg CPPFLAGS=-DDEBUG CFLAGS="-g -O0" CXXFLAGS="-g -O0" --disable-gdb --disable-ld
$ make -j8
我将 objdump 调试为:
$ gdb --args ./binutils/objdump.exe -D a.exe
GNU gdb (GDB) (Cygwin 12.1-1) 12.1
Reading symbols from ./binutils/objdump.exe...
(No debugging symbols found in ./binutils/objdump.exe)
这里我们看到 gdb 没有找到调试符号。为什么?指定了
-g -O0
。如何解决?
我在 Cygwin 上:
$ uname -a
CYGWIN_NT-10.0-19043 xxx 3.4.6-1.x86_64 2023-02-14 13:23 UTC x86_64 Cygwin