如何在标准库的C/C++函数中使用gdb单步调试?

4

最近我遇到了一个有趣的问题。当我使用gdb进行代码搜索时,我可以通过步进进入任何我定义的函数。但是当我尝试对标准C函数(例如printf())进行操作时,我只能看到源代码的二进制形式。

我该如何要求gdb显示可读的源代码?我非常关心标准函数的工作原理。谢谢!


4
安装C库的debuginfo。 - EOF
3
根据您的系统,您需要链接到调试库或链接到带有调试符号的库。 - user6556709
你的操作系统是什么?安装libc调试符号应该足以满足你的需求。 - ks1322
我使用Linux,Ubuntu。 - theoreticalboypf94
由于您正在使用Ubuntu,您很可能已经安装了debuginfo,但是没有C库的源代码。请参见https://dev59.com/WFYM5IYBdhLWcg3w3S-F#48287761以了解如何安装它。 - Mark Plotnick
1个回答

4
您需要执行以下操作:
  • 安装标准C和C++库的调试版本
  • 告诉编译器链接到这些版本

如果您正在使用Linux并且GCC作为您的编译器,您可以查看此帖子以了解执行上述第二步所需的步骤。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接