我是 Visual C++ 的专家,但 Linux 开发对我来说是新的。在 Visual Studio 中,很容易追踪到由 C 运行时库实现的任何代码。我只需要确保源代码已安装并且我可以直接进入任何我想要的函数——malloc()、cout::operator<<() 等等。
我正在尝试使用 Eclipse 的 C++ 包进行开发。我怎样才能在那里进入 C 运行时例程?由于 Linux 是开源的,我该如何进入操作系统例程?似乎应该是可能的——我是否缺少调试信息、源代码或两者兼而有之?我的配置中有什么?
我目前正在使用 Ubuntu 12.10。我正在使用 g++。我相信我使用的是 Eclipse 构建系统,因为我从未导入过 makefile 项目;我刚刚从 Eclipse 中的 C++ 项目向导中的一个简单的“Hello World”项目开始。
在破解了这一点之后:
我已经安装了 libstdc++6-4.2-dbg 包,认为它是 libstdc 库的调试符号:
sudo apt-get install libstdc++6-4.2-dbg
我还安装了 dpkg-dev,因为下一步说我需要它:
sudo apt-get install dpkg-dev
我尝试将 libc6 源安装到我家下的目录中:
apt-get source libc6
此时,尝试进入 printf() 告诉我 printf.c 丢失了。我无法进入 malloc 或 strlen,这表明我不了解 C 运行时库是如何在 Linux 中分解的。libc、glib 和 libstdc++ 有何不同?我需要哪些包?
如果我让 Eclipse 打开我确实拥有的 printf.c 文件(位于 ~/eglibc-2.15/stdio-common/printf.c),它不会打开文件(不会调整调试窗口以显示源代码) 并重新绘制显示有关无法找到文件的错误消息的窗口。(在“printf.c”中找不到源文件找到该文件或编辑源查找路径以包含其位置。)