2013-03-12 1 views
1

현재 어셈블리 프로그래밍을 위해 GDB 및 NASM을 사용하고 있습니다.GDB EFlags 니모닉을 표시하지 않습니다.

GF에서 EFlags 레지스터 니모닉 (ZF, AF, PF ... 등)을 볼 수 없습니다.

내가 대신 진수 값을 표시되고 있어요

: eflags 0x246 582

내가 이진 소수점 변환 및 플래그 나 자신을 셀 수 확신하지만,이 모든 일이 다른 것 같다 기능을 위해 많은 일을 보인다 갖고있어?

운영 체제 : Mountain Lion 10.8.2

GDB 버전 :

GNU gdb 6.3.50-20050815 (Apple version gdb-1824) (Thu Nov 15 10:42:43 UTC 2012) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "x86_64-apple-darwin". 

답변

1

버전이 매우 오래되었습니다. 이 기능을 구현하지 않은 경우 다음은 eflags의 내용을 인쇄하는 데 사용하는 gdb 함수입니다.

define eflags 
    printf "  OF <%d> DF <%d> IF <%d> TF <%d>",\ 
      (($eflags >> 0xB) & 1), (($eflags >> 0xA) & 1), \ 
      (($eflags >> 9) & 1), (($eflags >> 8) & 1) 
    printf " SF <%d> ZF <%d> AF <%d> PF <%d> CF <%d>\n",\ 
      (($eflags >> 7) & 1), (($eflags >> 6) & 1),\ 
      (($eflags >> 4) & 1), (($eflags >> 2) & 1), ($eflags & 1) 
    printf "  ID <%d> VIP <%d> VIF <%d> AC <%d>",\ 
      (($eflags >> 0x15) & 1), (($eflags >> 0x14) & 1), \ 
      (($eflags >> 0x13) & 1), (($eflags >> 0x12) & 1) 
    printf " VM <%d> RF <%d> NT <%d> IOPL <%d>\n",\ 
      (($eflags >> 0x11) & 1), (($eflags >> 0x10) & 1),\ 
      (($eflags >> 0xE) & 1), (($eflags >> 0xC) & 3) 
end 
document eflags 
Print EFLAGS register. (x86) 
end 
+0

이것은 많은 도움을주었습니다. 7.5로 업그레이드 하겠지만 Mountain Lion과 함께 더 많은 문제를 야기합니다. –

0

이 설정 플래그를 참조하려면 : GDB의

info registers eflags 
+0

위와 같은 결과가 나타납니다. –

관련 문제