阅读:1653回复:5
linux怎么进行线程的源码级调试(内空50)
#include <stdio.h>
#include <stdlib.h> #include <pthread.h> void * do_loop(void * data) { printf(\" do_loop \\n\"); pthread_exit(NULL); } int main() { int ret; pthread_t p_thread; int a = 1; int b = 2; ret = pthread_create(&p_thread,NULL,do_loop,(void *)&a); do_loop((void *)&b); printf(\" can\'t be here \\n\"); return 0; }pthread_create 比如这段代码,偶到了ret = pthread_create(&p_thread,NULL,do_loop,(void *)&a);这一句时,用s吧,到了一个不知名的地方,n吧,直接就过去了 偶的问题是,如何进入偶的线程,看这里执行到了哪一句 |
|
|
沙发#
发布于:2002-08-06 15:24
用break啊,设断点啊!
|
|
|
板凳#
发布于:2002-08-06 16:57
FT,这还用你教?
b main之类的东东偶都不会用,不如你给我发条绳子吧 |
|
|
地板#
发布于:2002-08-06 18:16
你是想一步一步看你线程中的代码的执行?
|
|
|
地下室#
发布于:2002-08-06 19:24
在gdb下,用info thread看看系统默认在那个线程上,(默认的线程左边有“*”号),
用pthread XX来改变默认的线程,XX为gdb赋予的一个数字,在info thread显示信息的最左边。 象你的情况,只要在do_loop函数处设一个断点,等pthread库初始化完线程,就会返回到该函数处继续执行了 |
|
5楼#
发布于:2002-08-07 09:57
看来偶应该找条绳子了。
真的很简单。 |
|
|