如何逐行运行Linux程序

我想用一些debugging器逐行运行一个GTK + / C程序。 我从来没有debugging过一个Linux程序,所以在哪里可以find一个非常初学者如何debugging代码的说明? 我只是有一个想法,我必须从网上下载源代码,用debugging符号编译项目,并通过DDD或GDB运行源代码。 那么任何人都可以提出如何开始学习这些主题的build议,并且开始一个好的debugging器是什么? 我至less有时间学习东西。

Solutions Collecting From Web of "如何逐行运行Linux程序"

除DDD外,还要研究nemiver,他们擅长不同的事情,但nemiver是非常好的。

PS。 如果您使用的是Ubuntu,并且想要从包存储库中安装一个应用程序,那么我们将其称为some_package,然后执行以下操作:

  1. 安装软件包“build-essential”和“devscripts”
  2. 运行“sudo apt-get build-dep some_package”安装编译该软件包所需的所有东西
  3. 运行“mkdir -p〜/ src / some_package; cd〜/ src / some_package”来创建源代码目录
  4. 进入System :: Administration :: Software Sources并激活“源代码”存储库
  5. 运行“apt-get source some_package”来下载some_package的源代码并放到当前目录下
  6. 使用“cd”移动到特定的应用程序目录,通常是“some-app-1.2.3”

7A。 运行“debuild -us -uc -b”将源代码编译成新的可安装的.DEB文件,在release模式下编译, 无需调试信息

或(这是中央部分):

7B。 在调试模式下运行“MAKEFLAGS = -j6 DEB_BUILD_OPTIONS =”nostrip noopt parallel = 5“CFLAGS =” – g3 -O0“debuild -us -uc”

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

当然,你可以选择修改步骤6和步骤7之间的代码。这个方法的好处是,它几乎适用于任何应用程序。 您可以将它用于Firefox,Linux内核,mesa堆栈等等。

看看使用GDB和编译与gcc -g,或使用另一个调试器。

http://en.wikipedia.org/wiki/Gdb