如果 objdump 是使用 -g -O0 构建的,那么为什么 gdb 在 objdump.exe 中找不到调试符号?

问题描述 投票:0回答:0

我将 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
debug-symbols binutils
© www.soinside.com 2019 - 2024. All rights reserved.