[haiku-commits] haiku: hrev45910 - src/apps/debugger/arch/x86_64/disasm

  • From: anevilyak@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 28 Jul 2013 01:11:16 +0200 (CEST)

hrev45910 adds 1 changeset to branch 'master'
old head: 5163e1c62dc454d84d5cfbd4558b84b8195a44fa
new head: c0a779600707af9e6faf8552134a3cc05219f75a
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=c0a7796+%5E5163e1c

----------------------------------------------------------------------------

c0a7796: Debugger: Fix step over on x86-64.
  
  DisassemblerX8664::GetNextInstructionInfo() was mistakenly truncating the
  instruction address due to a copy-and-paste bug when it was initially
  spawned off DisassemblerX86. This would result in the temporary breakpoints
  for skipping over function calls never getting set properly, leading to us
  stepping into the PLT on a step over.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev45910
Commit:      c0a779600707af9e6faf8552134a3cc05219f75a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c0a7796
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Sat Jul 27 23:07:02 2013 UTC

----------------------------------------------------------------------------

1 file changed, 4 insertions(+), 4 deletions(-)
src/apps/debugger/arch/x86_64/disasm/DisassemblerX8664.cpp | 8 ++++----

----------------------------------------------------------------------------

diff --git a/src/apps/debugger/arch/x86_64/disasm/DisassemblerX8664.cpp 
b/src/apps/debugger/arch/x86_64/disasm/DisassemblerX8664.cpp
index 07424ce..70bbf04 100644
--- a/src/apps/debugger/arch/x86_64/disasm/DisassemblerX8664.cpp
+++ b/src/apps/debugger/arch/x86_64/disasm/DisassemblerX8664.cpp
@@ -111,10 +111,10 @@ DisassemblerX8664::GetNextInstruction(BString& line, 
target_addr_t& _address,
        if (size < 1)
                return B_ENTRY_NOT_FOUND;
 
-       uint64 address = ud_insn_off(fUdisData);
+       target_addr_t address = ud_insn_off(fUdisData);
 
        char buffer[256];
-       snprintf(buffer, sizeof(buffer), "0x%08" B_PRIx64 ": %16.16s  %s", 
address,
+       snprintf(buffer, sizeof(buffer), "0x%016" B_PRIx64 ": %16.16s  %s", 
address,
                ud_insn_hex(fUdisData), ud_insn_asm(fUdisData));
                        // TODO: Resolve symbols!
 
@@ -159,7 +159,7 @@ DisassemblerX8664::GetNextInstructionInfo(InstructionInfo& 
_info,
        if (size < 1)
                return B_ENTRY_NOT_FOUND;
 
-       uint32 address = (uint32)ud_insn_off(fUdisData);
+       target_addr_t address = ud_insn_off(fUdisData);
 
        instruction_type type = INSTRUCTION_TYPE_OTHER;
        target_addr_t targetAddress = 0;
@@ -172,7 +172,7 @@ DisassemblerX8664::GetNextInstructionInfo(InstructionInfo& 
_info,
                targetAddress = GetInstructionTargetAddress(state);
 
        char buffer[256];
-       snprintf(buffer, sizeof(buffer), "0x%08" B_PRIx32 ": %16.16s  %s", 
address,
+       snprintf(buffer, sizeof(buffer), "0x%016" B_PRIx64 ": %16.16s  %s", 
address,
                ud_insn_hex(fUdisData), ud_insn_asm(fUdisData));
                        // TODO: Resolve symbols!
 


Other related posts:

  • » [haiku-commits] haiku: hrev45910 - src/apps/debugger/arch/x86_64/disasm - anevilyak