我想使用一些调试器逐行运行 GTK+/C 程序。我从未调试过 Linux 程序,那么在哪里可以找到针对初学者如何调试代码的说明呢?我只是有一个想法,我必须从网上下载源代码,使用调试符号编译项目并通过 DDD 或 GDB 运行源代码。那么任何人都可以提供如何开始研究这些主题的建议以及什么是一个好的调试器?我至少有时间学习东西。
除了DDD之外,还要看看nemiver,他们擅长不同的事情,但nemiver进展得非常好。
附言。如果您使用的是 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 并激活“Source Code”存储库
- 运行“apt-get source some_package”下载some_package的源代码并将其放在当前目录中
- 使用“cd”进入特定的应用程序目录,通常类似于“some-app-1.2.3”
7A.运行“debuild -us -uc -b”将源代码编译为以发布模式编译的全新可安装.DEB 文件WITHOUT调试信息
或(这是核心部分):
7B.运行 "MAKEFLAGS=-j6 DEB_BUILD_OPTIONS="nostrip noopt parallel=5" CFLAGS="-g3 -O0" debuild -us -uc" 以在调试模式下构建 debWITH调试信息
- 使用“cd ..”向上移动一步,然后执行“ls”,您应该看到生成的DEB文件(可以从单个源包生成多个二进制包,即DEB)
- sudo "sudo dpkg -i some_package_123.deb" 安装您刚刚构建的版本
当然,您可以选择修改步骤 6 和步骤 7 之间的代码。此方法的好处是它几乎适用于任何应用程序。您可以将它用于 Firefox、Linux 内核、mesa 堆栈或其他任何东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)