【轉】GDB attach到一個進程


要調試守護進程等已經啟動的進程或是調試陷於死循環的進程可以使用attach命令
格式 attach pid
C語言代碼
#include <stdio.h>         int main(void)    {        int marks[10];      int i;     for(i=0;i<12;i++)      {      scanf("%d",&marks[i]);      }  for(i=0;i<12;i++)      {      printf("%d",marks[i]);      }  }
 
查看進程id
#ps ax
或者
#ps au

 


啟動GDB
#gdb
 

 

用bt命令顯示backtrace棧幀,可以看到程序通過怎樣的調用途徑陷入等待狀態。
從上圖可見調用了系統調用_isoc99_scanf()。
查看源代碼,發現確是scanf("%d",&marks[i]);
attach之后就可以使用普通的gdb命令
進程信息可以用info proc顯示
寄存器信息可以用info reg顯示

 


原文:https://blog.csdn.net/unix21/article/details/8450169


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM