gdb";信息来源“;显示错误的文件

gdb";信息来源“;显示错误的文件,gdb,mingw,Gdb,Mingw,我编译了ffmpeg,现在我正试图在调试器中运行它。但gdb找不到源代码,所以我甚至不能在main上设置断点 查看信息源给我的输出: Source files for which symbols have been read in: Source files for which symbols will be read in on demand: C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_lock.c, C

我编译了ffmpeg,现在我正试图在调试器中运行它。但gdb找不到源代码,所以我甚至不能在main上设置断点

查看
信息源
给我的输出:

Source files for which symbols have been read in:
Source files for which symbols will be read in on demand:
C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_lock.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/include/msvcrt.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/secapi/_localtime64_s.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/secapi/_gmtime64_s.c, C:/building/msys64/mingw64/x86_64-w64-mingw32/include/psdk_inc/intrin-impl.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/output_format.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/invalid_parameter_handler.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/wcsnlen.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/wcrtomb.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/strnlen.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/smisc.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/gdtoaimp.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/misc.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/hexnan.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/hd_init.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/gmisc.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/gethex.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/gdtoa.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/dmisc.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/log2l.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/internal_logl.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/exp2l.S, C:/building/msys64/mingw64/x86_64-w64-mingw32/include/math.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_pformat.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/mbrtowc.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/powi.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/powi.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/sum.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/strtopx.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/strtof.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/strtodg.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/tanf.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/sinl_internal.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/sinf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/sin.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/sin.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/scalbn.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/pow.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/pow.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/log2f.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/log2.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/log.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/log.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/ldexp.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/fmod.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/floor.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/exp2f.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/exp2.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/exp.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/exp.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/cosl_internal.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/cosf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/cos.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/cos.c, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/ceilf.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/ceil.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/atanf.c, C:
/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/atan2.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/x86/atan2f.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/vsnprintf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_vsprintf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_vsnprintf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_vfscanf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_vfprintf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/lseek64.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/ftello64.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/fseeko64.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/wassert.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/strtoumax.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/strtoimax.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/mkstemp.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/mingw_matherr.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/gettimeofday.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/mingw_getsp.S, C:\repo\mingw-w64-crt-git\src\crt-x86_64-w64-mingw32/mingw_getsp.S, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/sqrt.def.h, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/sqrtf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/sqrt.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/s_erf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/roundf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/round.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/modf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/logf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/log10f.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/hypot.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/fabs.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/cbrtf.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/math/cbrt.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/gdtoa/strtodnrp.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/pesect.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/pseudo-reloc-list.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/tlsmcrt.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/tlsthrd.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt_handler.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/xtxtmode.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/pseudo-reloc.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/mingw_helpers.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/CRT_fp10.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/merr.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/cinitexe.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/tlssup.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/_newmode.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/gs_support.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/dllargv.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/charmax.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/wildcard.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/natstart.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/gccmain.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/atonexit.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/libsrc/guid_nul.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/libsrc/strmiids.c, C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c
我甚至没有
C:/repo
,我将文件保存在
D:/\u ffmpeg
中。这些文件都与ffmpeg无关,它们都来自C运行时。我正在运行
ffmpeg_g.exe
,其中应该包含调试信息。我用这个

编辑1:刚刚尝试了
info functions main
,这是输出。为什么它们中有很多被标记为
非调试符号

(gdb) info functions main
All functions matching regular expression "main":

File C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:
int mainCRTStartup(void);
static int __tmainCRTStartup(void);

File C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/gccmain.c:
void __main(void);

Non-debugging symbols:
0x000000014005d020  config_input_main
0x00000001400784a0  config_input_main
0x00000001400d9580  config_input_main
0x000000014067f080  main_function
0x000000014067f2f0  ff_slice_thread_execute_with_mainfunc
0x0000000140bfa120  ff_aac_apply_main_pred
0x0000000140bfb7b0  ff_aac_encode_main_pred
0x0000000140db1d40  mainSort
0x0000000140dc2de0  find_domain_parms_idx
0x0000000140e24790  _gpg_w32_bindtextdomain
0x0000000140e24a70  _gpg_w32_textdomain
0x0000000141370af8  __getmainargs
0x0000000141371500  main
0x00000001413fc430  mainGtU.part.0
(gdb)
这:

这意味着您的构建没有调试信息,没有它,GDB将无法执行任何源代码级调试

因为这个原因,我甚至不能在main上设置断点

您可能弄错了:GDB只需要知道地址(
0x141371500
),就可以在
main
上设置断点

我不知道确切的编译标志

嗯,你得看看(我们不能帮你)

查看后,您将看到编译行中不存在
-g
,或者编译后剥离了可执行文件

如果是前者,那么做
makecflags=-g
可能会解决这个问题

如果是后者,您可能正在调试已安装的应用程序。您可以调试构建的应用程序(即,
makeinstall
之前的二进制文件)

更新:


我可以在不查看编译器标志的情况下研究存在哪些调试信息吗

是:
objdump-g ffmpeg_g.exe
应该全部打印出来。从:

这:

这意味着您的构建没有调试信息,没有它,GDB将无法执行任何源代码级调试

因为这个原因,我甚至不能在main上设置断点

您可能弄错了:GDB只需要知道地址(
0x141371500
),就可以在
main
上设置断点

我不知道确切的编译标志

嗯,你得看看(我们不能帮你)

查看后,您将看到编译行中不存在
-g
,或者编译后剥离了可执行文件

如果是前者,那么做
makecflags=-g
可能会解决这个问题

如果是后者,您可能正在调试已安装的应用程序。您可以调试构建的应用程序(即,
makeinstall
之前的二进制文件)

更新:


我可以在不查看编译器标志的情况下研究存在哪些调试信息吗

是:
objdump-g ffmpeg_g.exe
应该全部打印出来。从:


当您附加进程时,您是否获得任何信息,如“(未找到调试符号)…完成)。您可以尝试不带任何表达式的“rbreak”命令。这应在任何给定源文件的每个函数处设置断点。

当您附加进程时,您是否获得任何信息,如“(未找到调试符号)…完成。您可以尝试“雷克“没有任何表情的命令。这应该在任何给定源文件的每个函数上设置断点。

编译时是否生成调试信息??你是用
-g
标志编译的吗?@AlejandroMontilla我不知道确切的编译标志。你编译时生成调试信息了吗??你是用
-g
标志编译的吗?@AlejandroMontilla我不知道确切的编译标志。我可以不看编译器标志而研究存在什么调试信息吗?我可以不看编译器标志而研究存在什么调试信息吗?
Non-debugging symbols:
0x0000000141371500  main
  -g
  --debugging
       Display debugging information.  This attempts to parse STABS and
       IEEE debugging format information stored in the file and print it
       out using a C like syntax.  If neither of these formats are found
       this option falls back on the -W option to print any DWARF
       information in the file.