The following series supercedes previous (v3) which has been partially applied (contains non applied patches of (v3), plus a couple of improvements)
This serie: - improves WineDbg parsing (no more bison warnings) - module scoping (in the form module!name) now allows wildcards in module part - get/set on integers is fully supported (even on bitfields, including integral conversions) - get/set on floats is fully supported (including float/double conversions) - WineDbg now can access types from debuggee in its own expressions, as well as pointer types to debuggee's type, even if the debuggee doesn't provide them - type definition can be explored (extending print command with type eg. 'p HANDLE' gives 'typedef HANDLE => void*') - implements DbgHelp.SymEnumTypeFromName(W) - fixes a couple of bugs
A+ ---
Eric Pouech (19): programs/winedbg: let type_print_hex use dbg_lgint_t as its parameter type programs/winedbg: rename print_longlong into print_sdecimal (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: move C++ identifier detection in the lexer programs/winedbg: move module scoping inside lexer dbghelp: implement SymEnumTypesByName(W) programs/winedbg: cache pointer type:s programs/winedbg: move type lookup at parsing time for cast operation programs/winedbg: added 'print type <TYPE>' command programs/winedbg: only call HeapFree on rightfully obtained buffers programs/winedbg: remove FORCE_DEREF expressions
dlls/dbghelp/dbghelp.spec | 4 +- dlls/dbghelp/type.c | 119 ++++++++- include/dbghelp.h | 2 + programs/winedbg/be_arm.c | 18 -- programs/winedbg/be_arm64.c | 18 -- programs/winedbg/be_cpu.h | 3 - programs/winedbg/be_i386.c | 18 -- programs/winedbg/be_x86_64.c | 18 -- programs/winedbg/break.c | 4 +- programs/winedbg/dbg.y | 78 +++--- programs/winedbg/debug.l | 12 +- programs/winedbg/debugger.h | 69 ++--- programs/winedbg/expr.c | 139 ++-------- programs/winedbg/expr.h | 1 - programs/winedbg/memory.c | 161 +++++++++-- programs/winedbg/stack.c | 4 +- programs/winedbg/symbol.c | 21 +- programs/winedbg/types.c | 499 +++++++++++++++++++++++++---------- programs/winedbg/winedbg.c | 9 +- 19 files changed, 734 insertions(+), 463 deletions(-)