History log of /haiku-fatelf/src/apps/debugger/arch/x86_64/ArchitectureX8664.cpp
Revision Date Author Comments
# dcce0a03 06-Jan-2013 Rene Gollent <anevilyak@gmail.com>

Adapt x86-64 to also use udis86-based instruction analysis.


# 5745a40d 31-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Rework how return values are handled.

- ArchitectureX86 now hands off the work for GetInstructionInfo() to
DisassemblerX86, since the latter has all the information we need
to properly classify and evaluate instructions. Correspondingly a
CpuState is passed down to it in order to perform address calculations
for the instruction if it's a jump or call instruction. The latter's
targets are then stored on the thread for later retrieval when
constructing a stack trace. Adjust X86_64 accordingly for the
signature changes. This also fixes a bug where Step Over would
sometimes result in a Step Into instead due to the previous
implementation of GetInstructionInfo() occasionally failing to
classify call instructions correctly.

- Architecture::CreateStackTrace() now takes an argument specifying
the address of the last executed function if applicable. This is used
to decide who/where to decode a return value from. Adjust callers.

- DwarfImageDebugInfo::_CreateReturnValue() uses the above information
in order to know directly who the caller it needs to look up a return
value for is, rather than trying to walk backwards to find them.
Type resolution is now also a bit more sophisticated due to various
cases where the subprogram entry didn't directly contain the return
type but referred to another DIE that did. Retrieving return value
now appears to work properly in all cases except when position
independent code is involved. The latter however will require
resolving the appropriate function address in the PLT, which will
need some additional work.


# dc693e92 28-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Extend Architecture to help retrieve return values.

- Architecture now has a new function to retrieve the location where
a return value can be found. Added implementation for x86 and stub
for x86-64.


# 84ea02a0 28-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Extend InstructionInfo for subroutines.

- InstructionInfo now also stores the destination address of subroutine
call instructions.
- Adjust callers.


# 9becda82 25-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Implement ArchitectureX8664::UpdateStackFrameCpuState().


# 9a538a29 20-Dec-2012 Alex Smith <alex@alex-smith.me.uk>

A few x86_64 debugger fixes + style fixes.


# c8d82cf6 19-Dec-2012 Alex Smith <alex@alex-smith.me.uk>

Started adding x86_64 support to Debugger.

Stack tracing doesn't work yet, nor does single stepping (somehow
manages to completely freeze the system).