当我使用-g编译程序并得到核心转储时,我可以使用gdb读取可执行文件和核心转储以调试程序在崩溃之前运行到的情况。其中gdb提供的一个功能是列表选项,可以列出使用可执行文件和核心转储编译的源代码。我使用strings -a命令与可执行文件和核心转储一起使用,但是我找不到任何if或for语句,虽然我确定代码有很多这些语句。那么代码从哪里来?我在一台计算机上编译代码,然后在不同的计算机上运行它,因此源代码不可用于生成核心转储的计算机,并且似乎也不在可执行文件或核心转储中。有什么建议吗?我真的想从可执行文件和核心转储中打印所有源代码,这可能吗?我的意思是不使用gdb,我确定可以编写一个使用gdb并可以列出整个代码的脚本,但我想自己做而不使用gdb,因为我想了解源代码来自何处以及如何格式化它,我希望尽可能多地了解它。