2012-01-04 3 views
1

컴파일 된 elf 파일이 있는데 사용 된 최적화 수준을 확인하고 싶습니다. 질문은 객체/엘프에서 최적화 수준을 어떻게 결정할 수 있습니까?파일에서 최적화 수준을 어떻게 결정할 수 있습니까?

"파일"명령과 "objdump"(대부분의 스위치)로 시도했지만 아무도이 사실을 밝히지 않았습니다. 전혀 가능합니까?

+2

최근 GCC는'#pragma GCC optimize'을 허용하므로 최적화 수준이 함수에서 다른 것으로 바뀔 수 있습니다. 그래서 당신의 질문에는 정확한 의미가 없습니다. –

+0

나는 본다. 그런 최적화의 배경은 무엇입니까? – tothphu

+0

질문을 이해할 수 없습니다. '#pragma GCC optimize'는 필요한 최적화 레벨을 변경할 수 있습니다. 예를 들어 사용할 수 있습니다. 소스 파일의 나머지 부분이'-O0 -g'로 컴파일 되더라도 어떤 특정 함수가 항상'-O2'에서 컴파일되도록 요청합니다. –

답변

2

아니요, 일반적으로 아닙니다. 컴파일러는 활성 "최적화"설정을 객체 파일에 쓰지 않으며 객체 코드 자체에서 결정할 수있는 것은 아닙니다.

+0

감사합니다. 나는 그렇게 할 수 있기를 바랬다. 나는이 문제를 해결해야한다. – tothphu

+1

때때로 .comments 섹션에서 컴파일러 및 링커의 명령 행 옵션을 볼 수 있습니다. ARM RVCT 도구를 사용할 때 "fromelf -v"는 명령 줄을 표시하는 주석 섹션을 덤프하지만 objdump/elfdump 또는 다른 도구가 그렇게하는지 확신 할 수 없습니다 – NullPointer

2

strings foo.o | grep -- -O 당신이 원하는 것을 줄 수도 있습니다.

관련 문제