gdb“info sources”显示错误的文件

时间:2017-12-01 10:29:22

标签: gdb mingw

我编译了ffmpeg,现在我正在尝试在调试器中运行它。但是gdb无法找到源代码,因此我甚至无法在main处设置断点。

查看var s = "www.example.com/السلام عليكم" let encodedLink = s.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed) let encodedURL = NSURL(string: encodedLink!)! as URL 给我的输出结果:

info sources

我甚至没有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中。这些文件都与ffmpeg无关,它们都来自C运行时。我正在运行D:/_ffmpeg,其中应包含调试信息。我用这个https://github.com/jb-alvarado/media-autobuild_suite

编译了它

Edit1:刚试过ffmpeg_g.exe,这是输出。为什么很多标记为info functions main

Non-debugging symbols

2 个答案:

答案 0 :(得分:0)

此:

Non-debugging symbols:
0x0000000141371500  main

表示您的构建没有调试信息,没有它,GDB将 无法执行任何源级调试。

  

由于这个原因,我甚至无法在主要设置断点。

你可能会弄错:GDB只需要知道地址(上面0x141371500)就可以在main上设置断点。

  

我不知道确切的编译标志

嗯,必须(我们不能为你做这件事)。

看了之后,您会看到编译行中没有-g,或者编译后删除了可执行文件。

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

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

<强>更新

  

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

是的:objdump -g ffmpeg_g.exe应该打印出来。来自man page

  -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.

答案 1 :(得分:0)

当你附上这个过程时,你得到的任何信息都像&#34;(没有找到调试符号)......完成。你可以试试&#34; rbreak&#34;命令没有任何表达式。这应该在任何给定源文件的每个函数上设置断点。