[PATCH v3 00/17] WineDbg enhance set/get operations on integers & floats
Eric Pouech
eric.pouech at gmail.com
Tue Dec 7 11:45:14 CST 2021
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(-)
More information about the wine-devel
mailing list