首页 > 代码库 > 调试-----调试正在运行的多线程程序
调试-----调试正在运行的多线程程序
4 using namespace std; 5 static int a = 1; 6 7 void *thread0(void*) 8 { 9 while (1)10 {11 a++;12 }13 return (void*)0;14 }15 16 void *thread1(void*) 17 { 18 while (1)19 {20 a++;21 }22 return (void*)0;23 }24 25 int main()26 {27 pthread_t thread[2];28 pthread_create(&thread[0], NULL, thread0, NULL);29 pthread_create(&thread[1], NULL, thread1, NULL);30 31 for (int i = 0; i < 2; i++)32 {33 pthread_join(thread[i], NULL); 34 }35 while (1)36 {37 sleep(2);38 cout << "pthread_join is called, block, this not execute" << endl;39 }40 41 return 0;42 }
main.cpp
1. 运行上面的程序 ./main
2. 查看进程号 ps aux | grep main
3. attach上去 gdb main [进程号]
4. 显示线程 info thread
5. attach上一个线程 thread 3
6. 设断点正常调试(不要输入run运行了, 因为程序已经启动了)
调试-----调试正在运行的多线程程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。