bte365娱乐线

【gdb】调试已经运行的进程

发布时间 2025-12-06 16:45:55 作者 admin 阅读 1058

调试已经运行的进程

1.例子:

#include

#include

void *thread_func(void *p_arg)

{

while (1)

{

printf("%s\n", (char *)p_arg);

sleep(10);

}

}

int main(void)

{

pthread_t t1, t2;

pthread_create(&t1, NULL, thread_func, "Thread 1");

pthread_create(&t2, NULL, thread_func, "Thread 2");

sleep(1000);

return;

}

调试已经运行的进程有两种方法:一种是gdb启动时,指定进程的ID:gdb program processID(也可以用-p或者--pid指定进程ID,例如:gdb program -p=10210)。以上面代码为例,用“ps”命令已经获得进程ID为10210:

bash-3.2# gdb -q a.out 10210

Reading symbols from /data/nan/a.out ...done.

Attaching to program `/data/nan/a.out', process 10210

[New process 10210]

Retry #1:

Retry #2:

Retry #3:

Retry #4:

Reading symbols from /usr/lib/libc.so.1...(no debugging symbols found)...done.

[Thread debugging using libthread_db enabled]

[New LWP 3 ]

[New LWP 2 ]

[New Thread 1 (LWP 1)]

[New Thread 2 (LWP 2)]

[New Thread 3 (LWP 3)]

Loaded symbols for /usr/lib/libc.so.1

Reading symbols from /lib/ld.so.1...(no debugging symbols found)...done.

Loaded symbols for /lib/ld.so.1

[Switching to Thread 1 (LWP 1)]

0xfeeeae55 in ___nanosleep () from /usr/lib/libc.so.1

(gdb) bt

#0 0xfeeeae55 in ___nanosleep () from /usr/lib/libc.so.1

#1 0xfeedcae4 in sleep () from /usr/lib/libc.so.1

#2 0x080509ef in main () at a.c:17

另一种是先启动gdb,然后用“attach”命令“附着”在进程上:

bash-3.2# gdb -q a

Reading symbols from /data/nan/a...done.

(gdb) attach 10210

Attaching to program `/data/nan/a', process 10210

[New process 10210]

Retry #1:

Retry #2:

Retry #3:

Retry #4:

Reading symbols from /usr/lib/libc.so.1...(no debugging symbols found)...done.

[Thread debugging using libthread_db enabled]

[New LWP 3 ]

[New LWP 2 ]

[New Thread 1 (LWP 1)]

[New Thread 2 (LWP 2)]

[New Thread 3 (LWP 3)]

Loaded symbols for /usr/lib/libc.so.1

Reading symbols from /lib/ld.so.1...(no debugging symbols found)...done.

Loaded symbols for /lib/ld.so.1

[Switching to Thread 1 (LWP 1)]

0xfeeeae55 in ___nanosleep () from /usr/lib/libc.so.1

(gdb) bt

#0 0xfeeeae55 in ___nanosleep () from /usr/lib/libc.so.1

#1 0xfeedcae4 in sleep () from /usr/lib/libc.so.1

#2 0x080509ef in main () at a.c:17

如果不想继续调试了,可以用“detach”命令“脱离”进程:

(gdb) detach

Detaching from program: /data/nan/a, process 10210

(gdb) bt

No stack.

参考资料

1. 调试已经运行的进程

相关推荐

派件地址变更服务

派件地址变更服务费为70 RMB/票/次,付款方式与运费一致。 1、 快件寄出后,如您致电顺丰客服要求变更派件地址;需向您收取派件地址变更服

10-16 分类 super365体育官网下载

韩国vs瑞典恶意踢人简介

韩国vs瑞典恶意踢人简介 提供韩国vs瑞典恶意踢人在线直播视频,并为您带来韩国vs瑞典恶意踢人全场比赛录像及比赛精彩进球集锦回放观看。 相

07-19 分类 super365体育官网下载

电视剧夏至未至里面的所有歌曲

相关推荐 电视剧夏至未至里面的所有歌曲 电视剧《夏至未至》正在火热播出中,那么《夏至未至》中所有歌曲都有哪些?下面是小编为您收集

08-08 分类 bte365娱乐线

比较好玩的3d页游有哪些

比较好玩的3d页游有哪些 时间:2025-04-27 09:37:19 | 大 中 小 | 厂商平台 | 网页游戏浏览器 冲击感强烈的3D游戏能让玩家的体验更加丰富,想必很多

11-19 分类 super365体育官网下载

破日传奇

“生态建设”和“环境保护”是当下中国“两会”的热门话题。“两会”是汇集民意、集聚民智并有效地将民智上升为国家意志的体制性平台,

07-24 分类 365bet世界杯

人参果又叫什么名字

人参果又叫长寿果,学名叫人参果,别名有仙果、凤果、香艳梨、艳果和草还丹这几个称呼,原名是叫南美香瓜茄,且人参果一般在种植3年后才

11-14 分类 super365体育官网下载