日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

多进程多线程GDB调试 (转)

發(fā)布時(shí)間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多进程多线程GDB调试 (转) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

多進(jìn)程多線程GDB調(diào)試 ? 一、線程調(diào)試指南: ? 1. gdb attach pid 掛載到調(diào)試進(jìn)程? 2. gdb$ set scheduler-locking on 只執(zhí)行當(dāng)前選定線程的開(kāi)關(guān) 3. gdb$ info threads 顯示當(dāng)前進(jìn)程中的線程 ==============out put example========================= 12 Thread 0x41f16940 (LWP 6922) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 11 Thread 0x42917940 (LWP 6923) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 10 Thread 0x43318940 (LWP 6924) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 9 Thread 0x43d19940 (LWP 6925) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 8 Thread 0x4471a940 (LWP 6926) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 7 Thread 0x4511b940 (LWP 6927) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 6 Thread 0x40a03940 (LWP 6928) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 5 Thread 0x40b04940 (LWP 6929) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 4 Thread 0x40c05940 (LWP 6930) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 3 Thread 0x4521c940 (LWP 6931) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 2 Thread 0x45c1d940 (LWP 6932) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 1 Thread 0x2b277c3bba40 (LWP 6913) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 ==============out put example========================= 說(shuō)明 進(jìn)程中的線程安裝 1,2,3 ..編號(hào) ? 4. gdb$ thread 1 ?調(diào)試1線程 gdb$ info threads ==============out put example========================= 12 Thread 0x41f16940 (LWP 6922) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 11 Thread 0x42917940 (LWP 6923) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 10 Thread 0x43318940 (LWP 6924) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 9 Thread 0x43d19940 (LWP 6925) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 8 Thread 0x4471a940 (LWP 6926) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 7 Thread 0x4511b940 (LWP 6927) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 6 Thread 0x40a03940 (LWP 6928) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 5 Thread 0x40b04940 (LWP 6929) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 4 Thread 0x40c05940 (LWP 6930) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 3 Thread 0x4521c940 (LWP 6931) ?0x00000036e7c0ab99 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 2 Thread 0x45c1d940 (LWP 6932) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 *1 Thread 0x2b277c3bba40 (LWP 6913) ?0x00000036e74cced2 in select () from /lib64/libc.so.6 ==============out put example========================= ?? *代表選定線程 5. gdb$ b function_name 設(shè)置斷點(diǎn)端到的函數(shù) 6. 通過(guò)執(zhí)行 gdb$ thread id ?調(diào)試id線程 執(zhí)行 gdb$ continue 如果能夠到達(dá)斷點(diǎn)說(shuō)明,函數(shù)在該函數(shù)中執(zhí)行,運(yùn)氣很好,直接開(kāi)始調(diào)試 否則,CTRL+C 跳出該線程 調(diào)試下一個(gè)線程,直到找到調(diào)試線程,開(kāi)始調(diào)試。 二、進(jìn)程調(diào)試指南: ? 程序又多個(gè)進(jìn)程組成,在一個(gè)父進(jìn)程中創(chuàng)建子進(jìn)程,調(diào)試方法如下: gdb$ set follow-fork-mode [child|parent] 設(shè)置fork后,跟蹤進(jìn)程 ? 后續(xù)可以再進(jìn)行多線程調(diào)試。 以上功能是在gdb6.4的功能 ? gdb6.6中增加了 gdb$ set detach-on-fork [on|off] on: 斷開(kāi) follow-fork-mode 指定進(jìn)程 off:gdb控制調(diào)試父子進(jìn)程,follow-fork-mode指定進(jìn)程被調(diào)試,另外一個(gè)被掛起。

轉(zhuǎn)載于:https://www.cnblogs.com/zengkefu/p/4952818.html

總結(jié)

以上是生活随笔為你收集整理的多进程多线程GDB调试 (转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。