2013-10-03 5 views
0

인텔 바이어 엔디안 컴파일러로 컴파일 된 코드를 디버깅하려고 할 때 데이터를 보는 데 문제가 있습니다. 내 데이터가 빅 엔디안으로 표시 된 것처럼 보입니다.바이 엔디 언 코드가있는 GDB

내가보고자하는 데이터는 __be_x와 같습니다. 여기서 x는 int입니다.

그 값이 일 때 x를 인쇄하려고, 난이 값이 대신 큰의 리틀 엔디안으로 interpeted되고 아마 때문에,이 값을 얻을 :

(GDB) 페이지 __be_x

$ 4 = 16777216

× 00 × 00 × 00하는 0x01

그래서 값 해석 할 :

(GDB)는/4B

0xf850aa0 < __be_x>을 X 빅 엔디안으로 ed는 1입니다.

GDB에는 이런 종류의 패치가 있다고 생각되지만, 찾을 수없는 것 같습니다. 난 당신이 같은 프로그램에 모두 BIG-과 리틀 엔디안 형식을 사용할 수있는 경우는 DWARF 확장을 필요로 생각 - -

덕분에, Itay

+0

게시물에 질문이 없습니다. 16777216 (0x01000000)을 이해하려고하십니까? 대체 디버그 출력을 제공하는 GDB 패치를 찾고 있습니까? – chux

답변

0

나는 이것에 대한 기능의 모르지만 "endian 설정"을 시도해보십시오.

gdb의 도움말 텍스트를 검색하는 "apropos"명령을 사용하는 것이 좋습니다. "apropos endian"을 사용하면 위의 명령을 아주 쉽게 찾을 수 있습니다.