With this series: - all expression computations inside WineDbg are done with largest available integer (64bit currently) - improved reading / writing integers (esp. on bit fields or different sizes) - implemented writing floats & doubles (including conversion when needed) - improved detection of incompatible types in assigment - code simplification (removed methods for managing floats and integers)
v2 -> v3: - renamed where bit field in struct dbg_lvalue into in_debuggee (and removed associated helper) - removed unused dbg_print_udecimal
v1 -> v2: - no change to basic types (esp. long) (new internal type int64 has been added) - removed console related patch (some more testing required)
there will be another serie after this one that will better integrate debuggee's generated types (but requires a bit of reworking in WineDbg parser that would be too large here)
A+
---
Eric Pouech (17): programs/winedbg: don't pretend all dbg_internal_var instances will hold DWORD_PTR programs/winedbg: let savable variables' size be a DWORD programs/winedbg: set pid and tid internal variables' type to be a DWORD programs/winedbg: introduce dbg_lg(u)int_t and migrate all integral computations on this type programs/winedbg: remove methods for fetching/storing integers in CPU backends programs/winedbg: renamed extract_longlong() into extract_lgint() for clarity programs/winedbg: split print_longlong into print_(s|u)decimal (to mimic print_hex) programs/winedbg: revamp dbg_lvalue structure and add helpers for init programs/winedbg: add bitfield capability to dbg_lvalue programs/winedbg: move bitfield extraction to extract_lgint dbghelp: in SymGetTypeInfo(), return the correct basetype for enums programs/winedbg: add helper to compare types and use it to detect wrong assigments programs/winedbg: add helper to transfer memory between lvalues programs/winedbg: correctly store integers into a bitfield programs/winedbg: remove fetch_float() method from CPU backends programs/winedbg: implement proper assignements of floating point numbers programs/winedbg: don't hard code sizes
dlls/dbghelp/type.c | 3 +- programs/winedbg/be_arm.c | 82 +++-------- programs/winedbg/be_arm64.c | 118 +++++---------- programs/winedbg/be_cpu.h | 7 - programs/winedbg/be_i386.c | 150 +++++++------------ programs/winedbg/be_x86_64.c | 196 ++++++++++--------------- programs/winedbg/break.c | 4 +- programs/winedbg/dbg.y | 6 +- programs/winedbg/debug.l | 8 +- programs/winedbg/debugger.h | 75 +++++++--- programs/winedbg/expr.c | 82 ++++------- programs/winedbg/memory.c | 192 ++++++++++++++++++++---- programs/winedbg/stack.c | 6 +- programs/winedbg/symbol.c | 21 +-- programs/winedbg/tgt_active.c | 6 +- programs/winedbg/types.c | 268 ++++++++++++++++++++++++++-------- programs/winedbg/winedbg.c | 14 +- 17 files changed, 663 insertions(+), 575 deletions(-)