DWF 형식의 ELF 파일 디버그 정보를 읽는 데 적합한 크로스 플랫폼 라이브러리에 대한 권장 사항은 무엇입니까? 파이썬 프로그램에서 DWARF 디버그 정보를 읽고 싶습니다.ELF 파일 DWARF 디버그 정보를 읽는 라이브러리
답변
블록에 새로운 아이가있다 - pyelftools - 엘프와 DWARF 형식을 구문 분석을위한 순수한 파이썬 라이브러리입니다. 시도 해봐.
그것은 기능을 완료하는 것을 목표로하고 활성 현재 개발중인, 그래서 어떤 문제가 도구 REC로 닫습니다
당신은 여기에 유용한 정보를 찾을 수 있습니다 : 드워프 디버깅 정보를 읽기위한
고마워, 나는 그 다른 질문을 놓쳤다. 왜냐하면 나는 "DWARF"를 찾고 있지 않았기 때문이다. 이 질문의 제목을 업데이트하겠습니다. –
귀하의 옵션은 불행하게도 매우 제한적입니다.
내가 아는 한 DWARF 디버깅 정보를 구문 분석하기위한 유일한 범용 라이브러리는 libdwarf입니다. 불행히도 아무도 libdwarf를위한 Python 바인딩을 작성하지 못했습니다 (어쩌면 당신이 그것을 다른 사람들과 공유 할 수 있습니다 :)) ctypes 또는 Python C API을 사용하여 확실히 라이브러리 함수에 액세스하려고 시도 할 수 있습니다.
그러나 훨씬 덜 우아한 해결책은 기존 DWARF 파서를 사용하여 출력하는 텍스트 정보를 파싱하는 것입니다. (리눅스에서) 이것에 대한 옵션은 내가 현재 readelf 떨어져 빌드 프로젝트를 사용
objdump -W
readelf --debug-dump=[OPTIONS]
하고 매우 완전한 기능을 갖춘되어 DWARF 디버깅 정보에 대한 지원이다. 파이썬을 사용하여 쉘에서 명령을 실행 한 다음 필요에 따라 정보를 구문 분석 할 수 있습니다. 확실히 도서관만큼이나 이상적이지는 않지만 그 트릭을해야합니다.
편집 : 이전에 Windows에서 언급 한 내용에 주목했습니다. 이 두 프로그램 (objdump 및 readelf)은 GNU-binutils의 일부이므로 Cygwin 또는 mingw에서 사용할 수 있어야합니다.
dwarfdump도 있습니다. – hochl
당신은 pydevtools에서 DWARF 라이브러리에 관심이있을 수 있습니다
는>>> from devtools.dwarf import DWARF
>>> dwarf = DWARF('test/test')
>>> dwarf.get_loc_by_addr(0x8048475)
('/home/emilmont/Workspace/dbg/test/main.c', 36, 0)
>>> print dwarf
.debug_info
COMPILE_UNIT<header overall offset = 0>
<0><11> compile_unit
producer: GNU C 4.4.3
language: C89
name: a/test.c
comp_dir: /home/emilmont/Workspace/dbg/test
low_pc: 0x080483e4
high_pc: 0x08048410
stmt_list: 0
[...]
알아두면 좋습니다. 몇 가지 질문 : 1) 지원되는 플랫폼은 무엇입니까 (Windows, Linux)? 2) [PyPI] (http://pypi.python.org/pypi)에 넣을 수 있습니까? –
PyPI에 있습니다 : http://pypi.python.org/pypi/BinTools/0.1.0 – emilmont
좋아요! 설명서에는 지원되는 플랫폼이 언급되어 있지 않습니다. Windows에서도 작동합니까? –
- 1. 객체 파일은 DWARF 디버그 정보
- 2. 단계 이상 수행, dwarf
- 3. Mac OSX에서 DWARF 파일 읽기
- 4. ELF 코어 파일 형식
- 5. elf 파일 수정
- 6. 바이너리 파일 형식 읽기 및 쓰기 라이브러리 (PE & ELF)?
- 7. ELF 오브젝트 파일에 어떤 유형의 디버그 정보가 있는지 어떻게 알 수 있습니까?
- 8. 새 ELF 실행 파일 만들기
- 9. 라이브러리 초기화 후 RAM에서 ELF 섹션 플러시
- 10. ELF 공유 라이브러리 : 재배치 오프셋이 범위를 벗어남
- 11. 비디오 형식 정보를 읽는 방법
- 12. 데이터베이스 스키마를 읽는 Java 라이브러리
- 13. COFF 라이브러리 파일 (.lib)에서 디버그 정보를 제거 할 수 있습니까?
- 14. 파일 형식 혼동 디버깅 : ELF/BIN
- 15. ajax-dialogbox의 정보를 읽는 방법
- 16. 다른 사이트에서 정보를 읽는 스크립트
- 17. 디렉토리를 가로 지르고 파일 정보를 읽는 Python 프로그램
- 18. 스택, 프레임, 전역 포인터 및 ELF 파일
- 19. glibc : elf 파일 OS ABI가 유효하지 않음
- 20. 디버그 임베디드 자바 스크립트 파일
- 21. ELF 형식 조작
- 22. 디버그 정보를 사용하거나 사용하지 않고 최적화하여 구축했습니다.
- 23. java에서 csv 파일을 읽는 라이브러리
- 24. 디버그 글래스 피시 파일 인증
- 25. elf dynstr 가비지 컬렉터
- 26. 공유 라이브러리 ELF 프로젝트를 autoconf에서 OS X로 이식
- 27. PowerShell에서 PowerShell의 디버그 스트림을 읽는 방법?
- 28. 단계별 메이크 파일 디버그
- 29. gcc 디버그 로그 파일?
- 30. glassfish에 JSP 용 디버그 정보를 표시하려면 어떻게합니까?
투표 :-) 신속하고 적극적으로 처리해야한다. –