c-如何逐行运行Linux程序

我想用一些调试器逐行运行GTK / C程序.我从未调试过Linux程序,所以在哪里可以找到初学者有关如何调试代码的说明?我只是有一个想法,我必须从网上下载源代码,使用调试符号编译项目,并通过DDD或GDB运行源代码.因此,有人可以提出建议如何开始学习这些主题吗?什么可以成为一个好的调试器呢?我至少有时间学习东西.

解决方法:

除了DDD之外,还要研究nemiver,它们擅长于不同的事情,但neverver的进展非常顺利.

PS.如果您使用的是Ubuntu,并且要逐步浏览从软件包存储库安装的应用程序,则将其称为some_package,然后执行以下操作:

>安装软件包“ build-essential”和“ devscripts”
>运行“ sudo apt-get build-dep some_package”以安装编译该软件包所需的所有东西
>运行“ mkdir -p〜/ src / some_package; cd〜/ src / some_package”为源代码创建目录
>进入System :: Administration :: Software Sources并激活“源代码”存储库
>运行“ apt-get source some_package”以下载some_package的源代码并将其放在当前目录中
>使用“ cd”进入特定的应用程序目录,通常类似于“ some-app-1.2.3”

7A.运行“ debuild -us -uc -b”以将源代码编译为以发布模式编译的全新可安装.DEB文件,而没有调试信息

或(这是中心部分):

7B.运行“ MAKEFLAGS = -j6 DEB_BUILD_OPTIONS =” nostrip noopt parallel = 5“ CFLAGS =”-g3 -O0“ debuild -us -uc”以带有调试信息的调试模式构建deb

>使用“ cd ..”上移一个步骤,然后执行“ ls”,您应该看到生成的DEB文件(多个二进制包,即DEB,可以从一个源包中生成)
> sudo“ sudo dpkg -i some_package_123.deb”安装刚刚构建的版本

当然,您可以选择在第6步和第7步之间修改代码.关于此方法的好处是,它几乎可用于任何应用程序.您可以将其用于Firefox,Linux内核,台面堆栈或其他任何工具.

上一篇:模拟Linux机器上缺少系统资源


下一篇:如何从脚本中破坏Visual Studio 2010 JavaScript调试器