2011-10-18 6 views
0

안녕하세요! 코어 파일이 있는데, 이라는 메쏘드가 분해되었고, r44 아래에 할당 된 값이 인 경우 크래시가 발생한다고 들었습니다.gdb의 어셈블리 코드 의미

나는 조립과 잘 맞지 않아서 무엇을하고 싶은지 물어보고 싶다. 0x480 평균값과 그 값을 찾는 방법은?/address? gdb의 코어 파일을 사용합니다.

그것은 0x480이 기능 MovePage()에 있다고 가정하는 것이 안전합니까?

;;; 1052    if(MovePage(len) == FALSE) { 
0xc00000000c0c55c0:2 <TMF::PrintLog(char*)+0x32>: adds   r44=0x480,r32;; 
0xc00000000c0c55d0:0 <TMF::PrintLog(char*)+0x40>: ld8   r43=[ret2] 
0xc00000000c0c55d0:1 <TMF::PrintLog(char*)+0x41>: (p6) st4 [r35]=ret3 

미리 감사드립니다.

+0

어떤 CPU입니까? 아이태니엄? –

+0

@ Paul R : 핵심은 HP-UX B.11.31 U ia64에서 생성되었습니다. – ryanb

+0

OK - 이것을 혼란을 피하기 위해'ia64' 나/또는'itanium'으로 태그해야합니다. –

답변

0

r44에 값을 할당하면 거의 확실하게 이 아닌이 충돌합니다.

GDB where, disasinfo registers 명령의 출력을 제공하도록 질문을 편집하십시오. 그러면 우리는 그것이 추락 한 곳 (그리고 아마도 이유)을 정확하게 알려줄 수 있어야합니다.