システム・プログラム
電子・情報工学系
新城 靖
<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)
----------------------------------------------------------------------