最近有点闲,因为之前工作上需要用到这方面的东西,但是一直不是太懂,

现在抽出时间好好研究下。


先说点题外话,一直使用的linux是装在虚拟机上的,虽然能正常使用,

始终觉得不太舒服,每次都得先开虚拟机,然后启动linux系统,比较麻烦。

最近突然想起阿里云服务器,于是看看了,发现居然还有免费的可以使用。

申请了下,可以免费使用半个月,直接选择安装ubuntu在即可。其余维护都由他们解决,非常方便。

每次使用,只需要开个putty或者SecureCRT

远程登录上就行,自己的桌面也清爽许多。

SecureCRT需要序列号,网上的破解版好多都无法正确破解,相比之下putty就好多了,完全免费,又

只有几百kb,诚意推荐。


接着回到正题。

要对程序进行gdb调试,必须在其程序中加入相关信息。

需要在编译时加入[-g]参数。

例如,需要编辑的源文件为hello.c,编译时使用命令为:gcc -g hello.c


对于未运行的程序,使用命令:gdb + (执行文件名)

例如:gdb a.out,接着设置断点、观察点等。

因为程序还未运行,所有需要使用命令run(简写r)来启动程序。

之后就可以对程序进行调试了。


对于已经在运行中的程序,需要将gdb attach到调试进程。

看了些资料,结合自己的使用效果:

使用已下两种方式:

1.

命令格式:

gdb  + (--pid) + (进程pid)

例子:调试进程为a.out,其pid为100,于是使用命令:gdb --pid 100。之后进程的控制权会交给gdb。

接着可以进行断点、观察点的设置,然后让程序继续运行。

调试完之后,退出gdb调试使用命令quit(简写q)即可。

2.

命令格式:

gdb

attach + (进程pid)

例子:首先使用命令gdb进入gdb界面,然后使用命令 attach 100,即可取得进程控制权。

之后操作同1。


gdb调试还有很多东西,暂时就写到这里。






Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐