[질문] mingw 에서 addr2line 사용법?

marunguy의 이미지

안녕하세요.

MINGW 에서 addr2line 의 사용법을 알고 싶습니다

minwg 로 컴파일한 exe 파일을 objdump 로 덤프했습니다.

objdump -d test.exe

dump 내용일부..

004012f0 <_main>:
  4012f0:	55                   	push   %ebp
  4012f1:	89 e5                	mov    %esp,%ebp
  4012f3:	83 ec 08             	sub    $0x8,%esp
  4012f6:	83 e4 f0             	and    $0xfffffff0,%esp
  4012f9:	b8 00 00 00 00       	mov    $0x0,%eax
  4012fe:	83 c0 0f             	add    $0xf,%eax
  401301:	83 c0 0f             	add    $0xf,%eax
  401304:	c1 e8 04             	shr    $0x4,%eax
  401307:	c1 e0 04             	shl    $0x4,%eax
  40130a:	89 45 fc             	mov    %eax,-0x4(%ebp)
  40130d:	8b 45 fc             	mov    -0x4(%ebp),%eax
  401310:	e8 7b 09 00 00       	call   401c90 <___chkstk>
  401315:	e8 f6 04 00 00       	call   401810 <___main>
  40131a:	e8 07 00 00 00       	call   401326 <_AddWBemToPath>
  40131f:	b8 00 00 00 00       	mov    $0x0,%eax
  401324:	c9                   	leave  
  401325:	c3                   	ret 

아래와 같이 하니 이상하게 나오네요..

D:\prj\secu\pathtest>addr2line -e test.exe  40131a
crtstuff.c:0

원하는 결과는 test.c:102 입니다.

그럼, 수고하세요.

marunguy의 이미지

gcc 로 컴파일시 -g 옵션을 주고 해야되네요. 흠.

cinsk의 이미지

addr2line 프로그램 자체가, debugging information에서 정보를 찾기 때문에 그렇습니다.

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/