如何开始调试?

时间:2009-08-09 15:11:23

标签: c linux debugging

我已经学会了C,我想开始改进开源软件。我想破解GTK +中一个恼人的错误。要查看我需要使用Gedit的错误。

如何下​​载GTK +和gedit的源代码并编译它们以便我可以看到bug的位置?我从来没有在Linux中使用过任何调试器,所以有什么教程吗?

5 个答案:

答案 0 :(得分:8)

您可以在此处获取有关下载和编译gedit的信息: http://projects.gnome.org/gedit/developers.html

我选择的调试器是GDB: http://www.gnu.org/software/gdb/

GDB是一个控制台应用程序,对于初学者来说可能很难处理。尝试像Eclipse这样的IDE,为GDB提供GUI。

答案 1 :(得分:5)

几乎所有Linux调试器都是gdb调试器的前端或适配器。因此,您应该首先学习如何使用它,最好是开始使用 你自己构建的小程序,而不是巨大的FOSS代码库。 gdb手册, 可从here获得,实际上是一个非常好的教程。

答案 2 :(得分:3)

有关构建和安装GTK +的信息应该在这里: http://www.gtk.org/development.html

消息来源应该在这里: http://www.gtk.org/download-linux.html

你可以查看gdb: http://www.gnu.org/software/gdb/这是一个非常标准的linux调试器。我会先把它花在简单的事情上,或者使用一个使用它的IDE。学习gdb可能值得花时间。

答案 3 :(得分:2)

gdb是一种恐龙,它应该早已灭绝。调试是一个领域(喘气!)Windows击败Unix。我把它放在胸前,我建议你从Data Display Debugger (DDD)图形前端开始gdb。是的,GUI很古怪,但与gdb开始相比,您将更高效,更快捷。

同样不要忽视valgrind查找和诊断内存错误。 KDE项目实际上要求使用valgrind;我不确定Gnome。

答案 4 :(得分:0)

如果您下载最新的gedit和gtk +来源,则可能无法看到该错误。它可以在最新的源代码中修复,或者最新的源代码可能不同,不会触发您的错误。

您正在运行什么Linux发行版?

首先,我建议您咨询您的发行版的错误数据库,看看是否有人提交了类似的错误。如果您没有找到任何内容,我建议使用您的发行版工具来获取与您在系统上安装的二进制文件相对应的源代码(例如Debian或Ubuntu上的apt-get source libgtk-2.0)。

此外,您的发行版也可能提供一个调试包(例如Debian上的libgtk2.0-0-dbg),它允许您在已经拥有的二进制文件上运行调试器而无需源代码。虽然这不能替代拥有源代码,但它可以用于运行valgrind或从核心文件中理解。