The lexer was matching tALL before checking for tIDENTIFIER, and the set
command didn't have any rules for tALL, which prevented setting the
flags for all the debug channels.
When using native compiler exceptions, it isn't valid to use
GetExceptionCode and GetExceptionInformation anywhere other than in the
filter or handler blocks since it would be very hard for the compiler to
work out where to retrieve the exception information from on the stack.
Therefore, remove the WINE_EXCEPTION_FILTER and WINE_FINALLY_FUNC macros
which enabled GetExceptionCode, GetExceptionInformation and
AbnormalTermination to be used inside of the functions they declared and
fix up all callers to access the information directly.
- fixed lexical rules for a path name
- fixed identifier rules so that we get the right precedence
between ! and ::
- modules (in mod!name forms) are now handled as tIDENTIFIER
(tPATH was buggy anyhow)
- rewrote auto mode as a specific set of commands to be run in
regular parser, instead of hard coding those commands
- added a new function to store a set of commands to be executed
in a file
- added 'echo' command to the parser functions
- got rid of dbg_action_mode
- added support of '--' on command line
- implemented hardware assisted breakpoints (new 'hbreak' command
which behaves just as 'break' command)
- small improvements to break handling (saving hit xpoint across
exception handling)
- fixed 'cont N' command for watchpoints
- fixed regression in 'info symbol XXXX' command (and enhanced
presentation)
- fixed regression in line stepping
- fixed regression in & (address operator) handling
- fixed some bad module reference for local symbols
- enhanced register presentation as local variables
- added warning when launching a debuggee which isn't a Wine app
- removed the 'local' extension of display command (and check when
setting the display whether the expr has a local binding)
- simplified exception handling, and factorized some code when
debugger stops
- fixed recursion in type printing
- now all type-id are stored with the base address of the module which
defines the type (struct dbg_type takes care of this pairing)
- fixed a couple of bugs in display handling
- fixed strings print and examination
unload a module (and it's debugging information), and a process
without pain
- portabiblity to another CPU should be easier now (CPU dependent backend)
- speed up memory allocation
- stabs related fixes:
+ now correctly handling symbol's size
+ blocks {} in functions are now correctly recognized and stored
(also applies to local variables scoping)
+ better basic types management (less wild guesses in the code)
+ full support of inline functions (source stepping now shows the
code in .h files for example)
- removal of external debugger (attaching with gdb is just fine to
debug winedbg)
- fixed a couple of issues for symbol address handling (address
lookup, incorrect type binding)
- winedbg now has a man page