2005년 02월 27일
Proc
Solaris Proc utility
/usr/proc/bin/pflags
Type: /usr/bin/pflags [ -r ] [ pid | core ]
각각의 프로세스(또는 lwp)에 대하여 /proc 플래그 및 수행되거나 걸려있는 시그널을 출력하고, 기타 /proc 에 대한 정보를 보여준다.
Option
-r : 만약 프로세스가 정지되어 있으면, 그 프로세스의 machine registers(?)를 보여준다.
example
#pflags 669
669: /opt/netscape/netscape http://www.sunworld.com/
data model = _ILP32 flags = PR_ORPHAN
/1: flags = PR_PCINVAL|PR_ASLEEP [ poll(0xef201a00,0x5,0xa603) ]
sigmask = 0x00002000,0x00000000 lwppend = 0x00002000,0x00000000
/usr/proc/bin/pcred
Type : /usr/bin/pcred [ pid | core ]
각 프로세스의 effective,real, saved(u/g)id를 표시한다. (보안정보)
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
example
#pcred 669
669: e/r/suid=101 e/r/sgid=14
/usr/proc/bin/pmap
Type : /usr/bin/pmap [ -rxlF ] [ pid | core ]
각 프로세스의 메모리 주소공간을 출력한다.
메모리 주소번지와 메모리 세그먼트 사이즈 표시한다.
Option
-r : 해당 프로세스의 예약된(reserved) 주소를 표시한다.
(현재 사용중인 세그먼트 크기보다 크게 표현)
-x : 해당 프로세스의 자세한 메모리 매핑 정보를 제공한다.
Resident/Shared/Private/Permission
- Resident :해당 프로세스가 가지는 총 물리적 메모리 크기
(공유 바이러나 및 라이브러리 포함)
- Shared : 다른 프로세스와 공유하고 있는 메모리의 총합
(공유 라이브러리, 메모리 포함)
- Private : 다른 프로세스와 공유된 메모리 공간을 제외한 Resident 메모리의 총합
-l : unresolved(?)의 동적 링커의 맵 이름을 포함해서 표현한다.
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
#pmap 669
669: /opt/netscape/netscape http://www.sunworld.com/
00010000 13124K read/exec /opt/netscape/netscape
00CF0000 988K read/write/exec /opt/netscape/netscape
00DE7000 15816K read/write/exec [ heap ]
EEE60000 8K - [ anon ]
…
[root@KOREA1/etc]# pmap -x 3420
3420: in.telnetd
Address Kbytes Resident Shared Private Permissions Mapped File
08045000 12 12 4 8 read/write/exec [ stack ]
08050000 24 24 24 - read/exec in.telnetd
08066000 4 4 - 4 read/write/exec in.telnetd
08067000 20 20 12 8 read/write/exec [ heap ]
DF9A0000 12 8 8 - read/exec libmp.so.2
DF9B3000 4 4 4 - read/write/exec libmp.so.2
DF9C0000 540 512 512 - read/exec libc.so.1
DFA57000 24 24 16 8 read/write/exec libc.so.1
DFA5D000 8 8 8 - read/write/exec libc.so.1
DFA70000 4 4 - 4 read/write/exec [ anon ]
DFA80000 12 12 12 - read/exec libcmd.so.1
DFA93000 4 4 4 - read/write/exec libcmd.so.1
DFAA0000 24 24 24 - read/exec libpam.so.1
DFAB6000 8 8 8 - read/write/exec libpam.so.1
DFAC0000 64 52 52 - read/exec libbsm.so.1
DFAD0000 8 8 8 - read/write/exec libbsm.so.1
DFAD2000 4 - - - read/write/exec libbsm.so.1
DFAE0000 476 404 404 - read/exec libnsl.so.1
DFB67000 24 24 24 - read/write/exec libnsl.so.1
DFB6D000 28 16 16 - read/write/exec libnsl.so.1
DFB80000 40 40 40 - read/exec libsocket.so.1
DFB9A000 4 4 4 - read/write/exec libsocket.so.1
DFBB0000 4 4 - 4 read/write/exec [ anon ]
DFBC0000 4 4 4 - read/exec libdl.so.1
DFBD0000 112 112 112 - read/exec ld.so.1
DFBFB000 8 8 4 4 read/write/exec ld.so.1
DFBFD000 4 4 - 4 read/write/exec ld.so.1
-------- ------ ------ ------ ------
total Kb 1480 1348 1304 44
- Mapped file에 나타나 있는 파일명이나, device번호 inode가 있는 것은 파일시스템에 있는 파일과 mapping을 유지하고 있음을 의미
- [heap],[anon],[stack]은 익명페이지(anonymous page)를 나타낸다.
- 프로세스가 실행되면서 동적으로 메모리를 할당받으면 [heap]영역에 할당되고, 그 영역의 크기를 확인해야 한다.
- 프로세스가 동작하는 역할에 비해 heap영역이 높게 사용되면 메모리관리에 오류가 있을 가능성이 있다.
/usr/proc/bin/pfiles
Type : /usr/bin/pfiles [ -F ] pid
각 프로세스가 open 된 파일 및 파일 개수를 보여준다
Open된 파일의 정보를 나열한다.
(file type, file flags, mode bit, size)
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
3420: in.telnetd
Current rlimit: 256 file descriptors
0: S_IFCHR mode:0000 dev:182,0 ino:49903 uid:0 gid:0 rdev:0,0
O_RDWR
1: S_IFCHR mode:0000 dev:182,0 ino:49903 uid:0 gid:0 rdev:0,0
O_RDWR
2: S_IFCHR mode:0000 dev:182,0 ino:49903 uid:0 gid:0 rdev:0,0
O_RDWR
3: S_IFCHR mode:0000 dev:102,0 ino:34216 uid:0 gid:0 rdev:23,2
O_RDWR
4: S_IFCHR mode:0620 dev:102,0 ino:978986 uid:500 gid:7 rdev:24,2
O_RDWR
5: S_IFDOOR mode:0444 dev:187,0 ino:31558 uid:0 gid:0 size:0
O_RDONLY|O_LARGEFILE FD_CLOEXEC door to nscd[21746]
6: S_IFCHR mode:0000 dev:102,0 ino:34208 uid:0 gid:0 rdev:4,0
O_RDWR|O_NDELAY
7: S_IFCHR mode:0000 dev:102,0 ino:34214 uid:0 gid:0 rdev:4,1
O_RDWR|O_NDELAY…
/usr/proc/bin/pstack
Type : /usr/bin/pstack [ -F ] [ pid | core ]
실행중인 프로세스에 있는 각각의 lwp 스택 점유상태를 보여준다.
(function call, 16진수값과 심볼릭 값(?)으로 메모리 표시 및 추적)
만일 문제가 생긴 프로세스면 어디서에 프로세스가 정지했는지 확인할 수 있다.
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
[root@KOREA1/etc]# pstack 3420
3420: in.telnetd
df9e9599 poll (80476bc, 1, ffffffff)
df9fd28b select (8, 8047884, 8047804, 8047784, 0) + 247
0805358c telnet (7, 6) + 424
08052e0f doit (0, 8047cc4) + 5db
080525d0 main (1, 8047df4, 8047dfc) + 17c
…
/usr/proc/bin/psig
Type : /usr/bin/psig pid ...
프로세스의 시그널 action(성향) 리스트를 보여준다
Option
none
Example
[root@KOREA1/etc]# psig 3420
3420: in.telnetd
HUP default
INT ignored
QUIT ignored
ILL default
TRAP default
ABRT default
EMT default
FPE default
KILL default
BUS default
SEGV default
SYS default
PIPE default
ALRM default
TERM default
USR1 default
USR2 default
CLD caught RESETHAND,NODEFER,NOCLDSTOP
PWR default
…
/usr/proc/bin/pldd
Type : /usr/bin/pldd [ -F ] [ pid | core ]
해당 프로세스가 링크한 동적 라이브러리를 보여준다.
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
[root@KOREA1/etc]# pldd 3420
3420: in.telnetd
/usr/lib/libdl.so.1
/usr/lib/libsocket.so.1
/usr/lib/libnsl.so.1
/usr/lib/libbsm.so.1
/usr/lib/libpam.so.1
/usr/lib/libcmd.so.1
/usr/lib/libc.so.1
/usr/lib/libmp.so.2
/usr/proc/bin/ptree
Type : /usr/bin/ptree [ -a ] [ [ pid | user ]
프로세스의 트리구조를 보여준다
(각각의 프로세스의 자식/부모간의 관계, pid, user 등)
Option
-a : ALL
Example
[root@KOREA1/etc]# ptree 3420
176 /usr/sbin/inetd -s
3420 in.telnetd
3427 -ksh
12482 -ksh
27773 ptree 3420
[root@KOREA1/etc]# ptree -a 3420
1 /etc/init -
176 /usr/sbin/inetd -s
3420 in.telnetd
3427 -ksh
12482 -ksh
29454 ptree -a 3420
#pmap, pstack을 사용한 코어분석
Type
$ /usr/proc/bin/pstack core
$ /usr/proc/bin/pmap core
Core file
- core file은 실행중인 프로세스의 이미지를 파일로 저장
- 실행 중 오류로 인하여 특정 시그널을 받아서 생성
(SIGSEGV, SIGSUB)
- SIGSEGV : 프로세스가 자신에게 주어진 주소공간 밖을 접근하거 나 읽기/쓰기/실행권한 모드를 위배했을 경우 커널이 발생시킴
- SIGBUS : 프로세스가 메모리 접근시 주소 단위가 있는데, 이점을 위배하여 접근하면 커널이 발생시킴
- 즉, SIGSEGV와 SIGBUS는 core 파일을 생성하고 종료시키는 신호임
Example
- pstack
----------------- lwp# 14 / thread# 25 --------------------
ff369764 __sigprocmask (ff36bf60, 0, 0, e6181d70, ff37e000, 0) + 8
ff35e110 _sigon (e6181d70, ff385930, 6, e6180114, e6181d70, 6) + d0
ff361150 _thrp_kill (0, 19, 6, ff37e000, 19, ff2c0450) + f8
ff24b900 raise (6, 0, 0, ffffffff, ff2c03bc, 4) + 40
ff2358ec abort (ff2bc000, e6180268, 0, fffffff8, 4, e6180289) + 100
fe3c68fc __1cCosFabort6Fl_v_ (1, fe4c8000, 1, e61802e8, 0, e9f90420) + b8
fe3c59f0 __1cCosbBhandle_unexpected_exception6FpnGThread_ipCpv_v_ (ff2c02ac, fe53895c, fe4dc164, fe470ab4, fe4c8000, e6180308) + 254
fe20a8b4 JVM_handle_solaris_signal (0, 25d5b8, e6180d90, fe4c8000, b, e6181048) + 8ec
ff36b824 __sighndlr (b, e6181048, e6180d90, fe20a8cc, e6181e14, e6181e04) + c
ff3684d8 sigacthandler (b, e6181d70, 0, 0, 0, ff37e000) + 708
--- called from signal handler with signal 11 (SIGSEGV) ---
e9f90420 Java_HelloWorld_displayHelloWorld (25d644, e6181224, e61819b8, 0, 2, 0) + 30
00090ae4 ???????? (e6181224, e61819b8, 25d5b8, fe4c8000, 0, 109a0)
0008dc4c ???????? (e61812c4, ffffffff, ffffffff, 97400, 4, e61811b8)
- pmap
E9800000 4608K read
E9F60000 136K read/write/exec
E9F90000 8K read/exec /home/usera/wls70/solaris/projectWork/lib/libhello.so
E9FA0000 8K read/write/exec /home/usera/wls70/solaris/projectWork/lib/libhello.so
E9FB4000 8K read/write/exec
E9FC0000 120K read/exec /usr/lib/libelf.so.1
- pstack 출력에서 오류가 발생한 주소는 e9f90420이다.
- pmap 출력 코드 부분에서 e9f90420은 E9F90000-E9FA0000 사이이므로 libhello.so 공유 개체 내부에서 오류가 발생
참고
코어파일을 생성을 위해 검사해야 할 운영체제 구성
1. 시스템 또는 사용자 별 ulimit -c(코어 파일의 설정된 크기)를 검사함
2. 사용 가능한 사용자 디스크 공간을 검사함
(예: 디스크 할당량이 있습니까?)
3. Solaris에서는 /etc/system 파일에 다음 매개변수가 있는데 이 값에 따라 코어 파일이 생성되지 않을 수 있음
(set sys:coredumpsize=0)
/usr/proc/bin/pflags
Type: /usr/bin/pflags [ -r ] [ pid | core ]
각각의 프로세스(또는 lwp)에 대하여 /proc 플래그 및 수행되거나 걸려있는 시그널을 출력하고, 기타 /proc 에 대한 정보를 보여준다.
Option
-r : 만약 프로세스가 정지되어 있으면, 그 프로세스의 machine registers(?)를 보여준다.
example
#pflags 669
669: /opt/netscape/netscape http://www.sunworld.com/
data model = _ILP32 flags = PR_ORPHAN
/1: flags = PR_PCINVAL|PR_ASLEEP [ poll(0xef201a00,0x5,0xa603) ]
sigmask = 0x00002000,0x00000000 lwppend = 0x00002000,0x00000000
/usr/proc/bin/pcred
Type : /usr/bin/pcred [ pid | core ]
각 프로세스의 effective,real, saved(u/g)id를 표시한다. (보안정보)
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
example
#pcred 669
669: e/r/suid=101 e/r/sgid=14
/usr/proc/bin/pmap
Type : /usr/bin/pmap [ -rxlF ] [ pid | core ]
각 프로세스의 메모리 주소공간을 출력한다.
메모리 주소번지와 메모리 세그먼트 사이즈 표시한다.
Option
-r : 해당 프로세스의 예약된(reserved) 주소를 표시한다.
(현재 사용중인 세그먼트 크기보다 크게 표현)
-x : 해당 프로세스의 자세한 메모리 매핑 정보를 제공한다.
Resident/Shared/Private/Permission
- Resident :해당 프로세스가 가지는 총 물리적 메모리 크기
(공유 바이러나 및 라이브러리 포함)
- Shared : 다른 프로세스와 공유하고 있는 메모리의 총합
(공유 라이브러리, 메모리 포함)
- Private : 다른 프로세스와 공유된 메모리 공간을 제외한 Resident 메모리의 총합
-l : unresolved(?)의 동적 링커의 맵 이름을 포함해서 표현한다.
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
#pmap 669
669: /opt/netscape/netscape http://www.sunworld.com/
00010000 13124K read/exec /opt/netscape/netscape
00CF0000 988K read/write/exec /opt/netscape/netscape
00DE7000 15816K read/write/exec [ heap ]
EEE60000 8K - [ anon ]
…
[root@KOREA1/etc]# pmap -x 3420
3420: in.telnetd
Address Kbytes Resident Shared Private Permissions Mapped File
08045000 12 12 4 8 read/write/exec [ stack ]
08050000 24 24 24 - read/exec in.telnetd
08066000 4 4 - 4 read/write/exec in.telnetd
08067000 20 20 12 8 read/write/exec [ heap ]
DF9A0000 12 8 8 - read/exec libmp.so.2
DF9B3000 4 4 4 - read/write/exec libmp.so.2
DF9C0000 540 512 512 - read/exec libc.so.1
DFA57000 24 24 16 8 read/write/exec libc.so.1
DFA5D000 8 8 8 - read/write/exec libc.so.1
DFA70000 4 4 - 4 read/write/exec [ anon ]
DFA80000 12 12 12 - read/exec libcmd.so.1
DFA93000 4 4 4 - read/write/exec libcmd.so.1
DFAA0000 24 24 24 - read/exec libpam.so.1
DFAB6000 8 8 8 - read/write/exec libpam.so.1
DFAC0000 64 52 52 - read/exec libbsm.so.1
DFAD0000 8 8 8 - read/write/exec libbsm.so.1
DFAD2000 4 - - - read/write/exec libbsm.so.1
DFAE0000 476 404 404 - read/exec libnsl.so.1
DFB67000 24 24 24 - read/write/exec libnsl.so.1
DFB6D000 28 16 16 - read/write/exec libnsl.so.1
DFB80000 40 40 40 - read/exec libsocket.so.1
DFB9A000 4 4 4 - read/write/exec libsocket.so.1
DFBB0000 4 4 - 4 read/write/exec [ anon ]
DFBC0000 4 4 4 - read/exec libdl.so.1
DFBD0000 112 112 112 - read/exec ld.so.1
DFBFB000 8 8 4 4 read/write/exec ld.so.1
DFBFD000 4 4 - 4 read/write/exec ld.so.1
-------- ------ ------ ------ ------
total Kb 1480 1348 1304 44
- Mapped file에 나타나 있는 파일명이나, device번호 inode가 있는 것은 파일시스템에 있는 파일과 mapping을 유지하고 있음을 의미
- [heap],[anon],[stack]은 익명페이지(anonymous page)를 나타낸다.
- 프로세스가 실행되면서 동적으로 메모리를 할당받으면 [heap]영역에 할당되고, 그 영역의 크기를 확인해야 한다.
- 프로세스가 동작하는 역할에 비해 heap영역이 높게 사용되면 메모리관리에 오류가 있을 가능성이 있다.
/usr/proc/bin/pfiles
Type : /usr/bin/pfiles [ -F ] pid
각 프로세스가 open 된 파일 및 파일 개수를 보여준다
Open된 파일의 정보를 나열한다.
(file type, file flags, mode bit, size)
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
3420: in.telnetd
Current rlimit: 256 file descriptors
0: S_IFCHR mode:0000 dev:182,0 ino:49903 uid:0 gid:0 rdev:0,0
O_RDWR
1: S_IFCHR mode:0000 dev:182,0 ino:49903 uid:0 gid:0 rdev:0,0
O_RDWR
2: S_IFCHR mode:0000 dev:182,0 ino:49903 uid:0 gid:0 rdev:0,0
O_RDWR
3: S_IFCHR mode:0000 dev:102,0 ino:34216 uid:0 gid:0 rdev:23,2
O_RDWR
4: S_IFCHR mode:0620 dev:102,0 ino:978986 uid:500 gid:7 rdev:24,2
O_RDWR
5: S_IFDOOR mode:0444 dev:187,0 ino:31558 uid:0 gid:0 size:0
O_RDONLY|O_LARGEFILE FD_CLOEXEC door to nscd[21746]
6: S_IFCHR mode:0000 dev:102,0 ino:34208 uid:0 gid:0 rdev:4,0
O_RDWR|O_NDELAY
7: S_IFCHR mode:0000 dev:102,0 ino:34214 uid:0 gid:0 rdev:4,1
O_RDWR|O_NDELAY…
/usr/proc/bin/pstack
Type : /usr/bin/pstack [ -F ] [ pid | core ]
실행중인 프로세스에 있는 각각의 lwp 스택 점유상태를 보여준다.
(function call, 16진수값과 심볼릭 값(?)으로 메모리 표시 및 추적)
만일 문제가 생긴 프로세스면 어디서에 프로세스가 정지했는지 확인할 수 있다.
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
[root@KOREA1/etc]# pstack 3420
3420: in.telnetd
df9e9599 poll (80476bc, 1, ffffffff)
df9fd28b select (8, 8047884, 8047804, 8047784, 0) + 247
0805358c telnet (7, 6) + 424
08052e0f doit (0, 8047cc4) + 5db
080525d0 main (1, 8047df4, 8047dfc) + 17c
…
/usr/proc/bin/psig
Type : /usr/bin/psig pid ...
프로세스의 시그널 action(성향) 리스트를 보여준다
Option
none
Example
[root@KOREA1/etc]# psig 3420
3420: in.telnetd
HUP default
INT ignored
QUIT ignored
ILL default
TRAP default
ABRT default
EMT default
FPE default
KILL default
BUS default
SEGV default
SYS default
PIPE default
ALRM default
TERM default
USR1 default
USR2 default
CLD caught RESETHAND,NODEFER,NOCLDSTOP
PWR default
…
/usr/proc/bin/pldd
Type : /usr/bin/pldd [ -F ] [ pid | core ]
해당 프로세스가 링크한 동적 라이브러리를 보여준다.
Option
-F : 다른 프로세스가 컨트롤임에도 불구하고 해당(target)프로세스에 대한 정보를 나열한다.
Example
[root@KOREA1/etc]# pldd 3420
3420: in.telnetd
/usr/lib/libdl.so.1
/usr/lib/libsocket.so.1
/usr/lib/libnsl.so.1
/usr/lib/libbsm.so.1
/usr/lib/libpam.so.1
/usr/lib/libcmd.so.1
/usr/lib/libc.so.1
/usr/lib/libmp.so.2
/usr/proc/bin/ptree
Type : /usr/bin/ptree [ -a ] [ [ pid | user ]
프로세스의 트리구조를 보여준다
(각각의 프로세스의 자식/부모간의 관계, pid, user 등)
Option
-a : ALL
Example
[root@KOREA1/etc]# ptree 3420
176 /usr/sbin/inetd -s
3420 in.telnetd
3427 -ksh
12482 -ksh
27773 ptree 3420
[root@KOREA1/etc]# ptree -a 3420
1 /etc/init -
176 /usr/sbin/inetd -s
3420 in.telnetd
3427 -ksh
12482 -ksh
29454 ptree -a 3420
#pmap, pstack을 사용한 코어분석
Type
$ /usr/proc/bin/pstack core
$ /usr/proc/bin/pmap core
Core file
- core file은 실행중인 프로세스의 이미지를 파일로 저장
- 실행 중 오류로 인하여 특정 시그널을 받아서 생성
(SIGSEGV, SIGSUB)
- SIGSEGV : 프로세스가 자신에게 주어진 주소공간 밖을 접근하거 나 읽기/쓰기/실행권한 모드를 위배했을 경우 커널이 발생시킴
- SIGBUS : 프로세스가 메모리 접근시 주소 단위가 있는데, 이점을 위배하여 접근하면 커널이 발생시킴
- 즉, SIGSEGV와 SIGBUS는 core 파일을 생성하고 종료시키는 신호임
Example
- pstack
----------------- lwp# 14 / thread# 25 --------------------
ff369764 __sigprocmask (ff36bf60, 0, 0, e6181d70, ff37e000, 0) + 8
ff35e110 _sigon (e6181d70, ff385930, 6, e6180114, e6181d70, 6) + d0
ff361150 _thrp_kill (0, 19, 6, ff37e000, 19, ff2c0450) + f8
ff24b900 raise (6, 0, 0, ffffffff, ff2c03bc, 4) + 40
ff2358ec abort (ff2bc000, e6180268, 0, fffffff8, 4, e6180289) + 100
fe3c68fc __1cCosFabort6Fl_v_ (1, fe4c8000, 1, e61802e8, 0, e9f90420) + b8
fe3c59f0 __1cCosbBhandle_unexpected_exception6FpnGThread_ipCpv_v_ (ff2c02ac, fe53895c, fe4dc164, fe470ab4, fe4c8000, e6180308) + 254
fe20a8b4 JVM_handle_solaris_signal (0, 25d5b8, e6180d90, fe4c8000, b, e6181048) + 8ec
ff36b824 __sighndlr (b, e6181048, e6180d90, fe20a8cc, e6181e14, e6181e04) + c
ff3684d8 sigacthandler (b, e6181d70, 0, 0, 0, ff37e000) + 708
--- called from signal handler with signal 11 (SIGSEGV) ---
e9f90420 Java_HelloWorld_displayHelloWorld (25d644, e6181224, e61819b8, 0, 2, 0) + 30
00090ae4 ???????? (e6181224, e61819b8, 25d5b8, fe4c8000, 0, 109a0)
0008dc4c ???????? (e61812c4, ffffffff, ffffffff, 97400, 4, e61811b8)
- pmap
E9800000 4608K read
E9F60000 136K read/write/exec
E9F90000 8K read/exec /home/usera/wls70/solaris/projectWork/lib/libhello.so
E9FA0000 8K read/write/exec /home/usera/wls70/solaris/projectWork/lib/libhello.so
E9FB4000 8K read/write/exec
E9FC0000 120K read/exec /usr/lib/libelf.so.1
- pstack 출력에서 오류가 발생한 주소는 e9f90420이다.
- pmap 출력 코드 부분에서 e9f90420은 E9F90000-E9FA0000 사이이므로 libhello.so 공유 개체 내부에서 오류가 발생
참고
코어파일을 생성을 위해 검사해야 할 운영체제 구성
1. 시스템 또는 사용자 별 ulimit -c(코어 파일의 설정된 크기)를 검사함
2. 사용 가능한 사용자 디스크 공간을 검사함
(예: 디스크 할당량이 있습니까?)
3. Solaris에서는 /etc/system 파일에 다음 매개변수가 있는데 이 값에 따라 코어 파일이 생성되지 않을 수 있음
(set sys:coredumpsize=0)
# by | 2005/02/27 00:25 | Technical.Doc | 트랙백



☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]