Hello guys! A new build is here and lets see what is new.
- Now you have an ability to change values on the fly in the Inspector widget. Double click on the value or press CTRL+e to edit.
- Run-to a line is now available. You can access it with shortcut 't' in Fileviewer widget or right click and select in the context menu "Run To Cursor". Also you can set next statement with shortcut 'r' or right click and select in the context menu "Set Next Statement".
- A file dialog will show up now when missing a file. This helps when your source code directory does not match hard-coded directory in the debug info file.
- Now when a new expression is created Inspector will select next empty row.
- A bug with AltGr was fixed.
- Added shortcuts to quickly access different panes.
ALT+1 - Selects Fileviewer
ALT+2 - Selects Inspector
ALT+3 - Selects Callstack
ALT+0 - Selects Debug Output
ALT+9 - Selects Disassembler
If there are multiple instances of the same pane pressing same shortcut will cycle through them.
- A window was added to modify executable path, command line, working directory; it can be accessed with F1 key.
- A window was added to make data breakpoints, it can be accessed with F2 key or you can press in the Inspector CTRL+d this will automatically create an
expression for a selected row and paste it into the window.
NOTE: You can have only 3 data breakpoints active at one time. This is because debugger uses debug registers to trap writes and reads and there are only 4 registers and one is used for stepping. I know that 3 data breakpoints is limited and I have tried to work around this by using VirtualProtect to change access rights for pages but this proved to be very inefficient. You cannot use VirtualProtect to trap sizes that are < than a page size (on my machine it is 4096 bytes) and most data breakpoints are less than that, therefore debugger has to do a range check on every access violation event that is sent by the OS. At this point I have found out that windows takes around 500,000 cycles to process a single access violation event which makes program that is being debugged totally unusable.
- A "plucking" feature was added to the Inspector widget that can be accessed with shortcut CTRL+p or CTRL+P to select "plucked" row. This is for cases when you want to view a variable when changing stack frames.
- Now when you place mouse pointer over a variable in the Fileviewer widget a tooltip will show up with value of that variable. Also you can put cursor on the identifier and press 'e' to trigger tooltip or you can select an expression and press 'e' to evaluate it.
- A new tool was added to the Inspector widget to view long strings. You can click on the magnifying glass icon on the right in the Inspector or use shortcut CTRL+m to access it.
- Updated freetype to 2.9.
- Ditched my instruction decoder in favor of the Intel XED.
- ALT+h will toggle base for the selected Inspector or Fileviewer.
- ALT+H will toggle base for every Inspector and Fileviewer instances.
- Added shortcuts to resize panes, see "cdbg.config".
Press '`'(tilda) to access console.
ls bp - list all breakpoints.
ls dbp - list all data breakpoints.
ls fbreak - list all function breakpoints.
ls thread - list all threads.
ls module - list all modules.
ls file - list all files.
ls keys - list all key bindings.
del bp # - delete breakpoint.
del dbp # - delete data breakpoint.
del fbreak # - delete function breakpoint.
You can find # by using the "ls" command. Also, to delete all entries you can use '*' instead of the index.
gotobp # - point Fileviewer at specified breakpoint.
select_thread # - select specified thread.
break - breaks running debuggee.
clear - clears the console.