我编译了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
答案 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;命令没有任何表达式。这应该在任何给定源文件的每个函数上设置断点。