如何逐行运行Linux程序

时间:2009-10-01 16:20:20

标签: c linux debugging gdb

我想用一些调试器逐行运行GTK + / C程序。我从来没有调试过Linux程序,所以在哪里可以找到关于如何调试代码的初学者的说明?我只想知道我必须从net下载源代码,使用调试符号编译项目并通过DDD或GDB运行源代码。那么,任何人都可以提出如何开始研究这些主题的建议,以及什么可以是一个好的调试器开始?我至少有时间学习东西。

3 个答案:

答案 0 :(得分:2)

除了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并激活“Source Code”存储库
  5. 运行“apt-get source some_package”下载some_package的源代码并将其放在当前目录中
  6. 使用“cd”进入特定的app目录,通常是“some-app-1.2.3”
  7. 7A。运行“debuild -us -uc -b”将源代码编译为在发布模式下编译的全新可安装.DEB文件 WITHOUT 调试信息

    或(这是核心部分):

    7B。运行“MAKEFLAGS = -j6 DEB_BUILD_OPTIONS =”nostrip noopt parallel = 5“CFLAGS =” - g3 -O0“debuild -us -uc”在调试模式中构建deb WITH 调试信息

    1. 使用“cd ..”向上移动一步,然后执行“ls”,您应该看到生成的DEB文件(多个二进制包,即DEB,可以从单个源包生成)
    2. sudo“sudo dpkg -i some_package_123.deb”安装刚刚构建的版本
    3. 当然,您可以选择在步骤6和7之间修改代码。这个方法的好处是它几乎适用于任何应用程序。您可以将它用于Firefox,Linux内核,台面堆栈等等。

答案 1 :(得分:1)

研究使用GDB并使用gcc -g进行编译,或使用其他调试器。

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

答案 2 :(得分:1)