问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux下调试程序用什么工具

发布网友 发布时间:2022-04-23 01:50

我来回答

2个回答

热心网友 时间:2022-04-08 19:32

Linux调试程序大多数都是喜欢用gdb,gdb是一个命令行界面的程序调试工具,任何调试操作都是输入命令来实现的。从Windows过来的程序员可能不习惯用gdb这个调试器,可以去试试一些图形界面的的调试器,比如Kgdb、Affinic GUI Debugger,这两款调试器虽然是图形界面的调试器,但是它其实是调用gdb来完成它的调试功能的,也就是说它们其实是gdb的一个图形界面的外壳,所以要先安装好gdb再安装它们,不习惯gdb的命令界面的话,可以试试这两款软件。

热心网友 时间:2022-04-08 21:07

在Linux下,调试工具并非只有gdb,还有很多其它调试工具,它们都各有所长,侧重方面也有所不同。本文介绍几种笔者常用的调试工具:
1. mtrace 程序运行完毕后,使用mtrace工具分析这些内存分配历史信息,可以查出内存错误的位置(mtrace在glibc-utils软件包里)。
2. strace
在编程时,检查函数的返回值是一种好习惯。对于像glibc等标准C的函数,光检查返回值是不够的,还需要检查errno的值。这样的程序往往显得冗长,不够简洁。同时也可能是出于偷懒的原因,大多数程序里并没有做这样的检查。
这样的程序,一旦出现错误,用调试器一步一步定位错误,然后想法查出错误的原因,也是可以的,不过比较麻烦,对调试器来说有些大材小用,不太可取。这时,用strace命令可能会更方便一点。它可以显示各个系统调用/信号的执行过程和结果。比如文件打开出错,一眼就看出来了,连错误的原因(errno)都知道。
3. binutil
binutil是一系列的工具,你可能根本不知道它们的存在,但是没有它们你却寸步难行。
4. ld-linux
现在加载ELF可执行文件的工作,已经落到ld-linux.so.2头上了。
5. gdb
对于真正意义的调试器来说,gdb在linux下是独一无二的。它有多种包装,有字符界面的,也有图形界面的,有单独运行的,也有集成到IDE中的。gdb功能强大,图形界面的gdb容易上手一点,但功能无疑受到了一些*,相信大部分高手还是愿意使用字符界面的。Gdb太常用了,这里不再多说。
6. gcc/boundschecker
相信很多人用过win32下的BoundsChecker(Compuware公司)和Purify(IBM公司)两个工具吧。它们的功能实在太强大了,绝非能通过重载内存管理函数就可以做到,它们在编译时插入了自己的调试代码。 详细介绍可以看书籍《Linux就该这么学》。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苍雷剑和翻天印哪个好 还有玄冰剑和照妖镜 武林外传现在收购一套+15或者+16的法宝玄冰剑,苍雷剑大概是多少钱,求解... 武林外传苍雷剑玄冰剑可以用什么符强化 诗经桢字诗句 删除电脑里的共享文件夹在哪里设置电脑共享文件怎么删除 为什么我点击qq面板上的qq游戏会显示密码不正确 "CPR"真的是“检查口袋并跑步”的缩写吗? cpr屏蔽是什么意思? CPR是什么意思 CPD是什么意思 网络广告直销CPR (Cost Per Response ) linux下 安装mysql 问题 centos 6.0下安装oracle 10g出现的问题 Solaris 安装oracle提示找不到 ld-linux.so.2 -bash: /bin/tar: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录现在什么命令都用不了 我的linux的 ld.linux.so.2原来指向glibc-2.11请问如何将它改为指向新库glibc-2.14 Fedora 64位缺少/lib/ld-linux.so.2 如何将ld-linux.so.2静态编译到程序中 redhat 6.0 64位 运行 ls命令提示 /lib/ld-linux.so.2: bad ELF interpreter: linux系统ls,ll命令提示“-bash: /bin/ls: /lib/ld-linux.so.2: bad ELF interpreter:”怎么回事? 在linux系统中安装软件:/lib/ld-linux.so.2:bad elf interpreter怎么解决 常用的 怎么解决/lib/ld-linux.so.2:bad elf interpreter:no such file or directory 怎样安装ld-linux.so.2 十万火集!!!误将ubuntu系统的ld-linux.so.2文件给挪了位置,结果现在几乎所有的命令都用不了了,也没办 ld-linux.so.2是什么文件? 苹果Xs max打电话很小怎么办? 比特币现在还能交易吗 比特币退出中国市场还能交易吗 比特币现在在哪能交易 比特币现在怎么交易? 获得ITIL认证对于个人及企业的发展有什么好处? lib64/ld-linux-x86-64.so.2删了怎么办 运行出错 cannot find /lib/ld-linux.so.2,该怎么处理 我用的是RHEL6.0但是没有/lib/ld-linux.so.2 文件怎么办 /lib/ld-linux.so.3:bad ELF interpreter: No such file or directory libdl.so.2在哪个包中 过期啤酒浇花的正确方法是什么? 真空包装本身并不杀菌,真空包装食物该如何保存呢? 真空包装的食品,不加防腐剂可以保存多久 用刚打开的啤酒浇花 真空状态下保鲜吗?比如食物在真空状态下不会腐烂吗? 刚打开的啤酒能浇花吗? 怎样正确使用啤酒浇花? 食品包装保鲜效果是充氮好,还是抽真空好? 啤酒浇花的正确方法用啤酒怎样浇效果更好 喝剩的啤酒可以浇花吗?为什么? 真空包装机是如何给食品保鲜的? 啤酒开瓶后放置多长时间可以浇花? 真空包装的食品放冷冻还是放放保保鲜好真空包装的食品放冷藏好还是放冷冻好? 可以用喝剩下的啤酒浇花吗?对花卉有没有好处 用啤酒浇花好吗?哪些植物适合啤酒浇花?