システム・プログラム 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/syspro-2000/2000-04-17
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
良く使うコマンド。% cc -g ファイル名.c -o 実行形式% dbx 実行形式
![]()
残念ながら、SGI では今の所動かない。 Mule の中から dbx を呼ぶ。ソース・プログラム上でどこを実行しているかを 追うことができる。 使い方。% xdbx 実行形式 &%
![]()
dbx 実行形式 リターン
」と打つ。
% cc -g ファイル名.c -o 実行形式% gdb 実行形式
![]()
良く使うコマンド。
xgdb ではなく、xxgdb。x が2回。 Mule の中から gdb を呼ぶ。ソース・プログラム上でどこを実行しているかを 追うことができる。 使い方。% xxgdb 実行形式 &%
![]()
gdb 実行形式 リターン
」と打つ。
---------------------------------------------------------------------- 1: /* 2: segv.c -- segmentation violation を起こすプログラム 3: ~yas/syspro1/cc/segv.c 4: $Header$ 5: Start: 1998/04/20 23:56:19 6: */ 7: #include <stdlib.h> 8: 9: main() 10: { 11: char *p ; 12: strcpy(p,"hello"); 13: printf("%s\n",p); 14: } ----------------------------------------------------------------------実行例。
---------------------------------------------------------------------- % make segv cc segv.c -o segv % ./segv Segmentation fault (core dumped) % echo $LANG ja_JP.EUC % file core core: IRIX コア・ダンプ of 'segv' % ls -l core -rw-r--r-- 1 yas lab 512 4月 20日 23時58分 core % cc -g segv.c -o segv % dbx segv dbx version 7.2 Aug 29 1997 03:27:55 core is an incomplete corefile Executable /home/lab2/OS/yas/syspro1-1998/cc/segv (dbx) run Process 26541 (segv) started Process 26541 (segv) stopped on signal SIGSEGV: Segmentation violation (default) at [strcpy:123 ,0xfa6a1c0] Source (of strcpy.s) not available for Process 26541 (dbx) where > 0 strcpy(0xfb68d04, 0x10001000, 0x7fff2f4c, 0x7fff2f4c) ["strcpy.s":123, 0xfa 6a1c0] 1 main() ["/home/lab2/OS/yas/syspro1-1998/cc/segv.c":12, 0x4009c4] 2 __istart() ["crt1tinit.s":13, 0x400960] (dbx) list Source (of strcpy.s) not available for Process 26541 (dbx) up main: 12 strcpy(p,"hello"); (dbx) list 13 printf("%s\n",p); 14 } (dbx) ----------------------------------------------------------------------