要調試守護進程等已經啟動的進程或是調試陷於死循環的進程可以使用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]); } }
格式 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]);
從上圖可見調用了系統調用_isoc99_scanf()。
查看源代碼,發現確是scanf("%d",&marks[i]);
attach之后就可以使用普通的gdb命令
進程信息可以用info proc顯示
寄存器信息可以用info reg顯示
原文:https://blog.csdn.net/unix21/article/details/8450169
寄存器信息可以用info reg顯示

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