2012-08-28 3 views
0

Windows에는 실행 파일에 사용 된 모든 심볼과 해당 심볼이로드 된 동적 라이브러리가 나열된 nifty 도구 -이 있습니다. 이것은 누락 된 기호 & DLL을 아는 데 매우 유용합니다.런타임시로드 된 모든 심볼 나열.

* nix/Solaris와 유사한 유틸리티가 있습니까? 우리가 ldd와 nm의 조합으로 이것을 발견 할 수 있지만, 단일 도구가 유용 할 것입니다.

+2

'nm' /'ldd'를 사용하여 원하는 정보를 출력하는 스크립트를 만들면 왜 게시 할 수 있습니까? 오늘날의 거의 모든 위대한 오픈 소스 소프트웨어는 개발자가 "긁어 모으기 가렵다"고 생각했기 때문에 일어났습니다. :) –

+0

@ Joachim : 충분히 동의 할 수 없다. 간단한 UN * X 파이프와 작은 셸 별칭 또는 스크립트의 사용에 어떤 일이 일어 났는지 ... –

답변

0

dbx로 pid에 연결하고 funcs 명령을 사용하여로드 된 기호를 나열하십시오.

$ dbx "-c funcs; quit " /usr/bin/bash 4837 

Reading bash 
Reading ld.so.1 
Reading libcurses.so.1 
Reading libsocket.so.1 
Reading libnsl.so.1 
Reading libdl.so.1 
Reading libc.so.1 
Attached to process 4837 
stopped in _waitid at 0xfee0af95 
0xfee0af95: _waitid+0x0015:  jae  _waitid+0x21 [ 0xfee0afa1, .+0xc ] 
`bash`_start 
`bash`_mcount 
`bash`__fsr 
`bash`main 
`bash`exit_shell 
`bash`sh_exit 
... 
`libnsl.so.1`nis_sperror 
`libnsl.so.1`nis_lerror 
`libnsl.so.1`__nis_group_cache_stats 
... 
`libc.so.1`mmap64 
`libc.so.1`_mmap64 
`libc.so.1`_init 
`libc.so.1`_fini 
detaching from process 4837 
+0

응답 해 주셔서 감사합니다. 이것은 gdb (dbx를 사용하지 않는 사람들을 위해) - 'info types'명령으로도 수행 할 수 있습니다. 나는 실제로 그와 기호가 빠진 것을 알 수있는 도구를 찾고있다. 프로그램을 성공적으로로드 할 수있는 경우에만 gdb/dbx 작동합니다 것 같아요. – gammay