c[ode]clap»Blog

alpha 0.8.28

spx
​0.8.28 is now available as another build from the longer 0.8 path. Most notably DWARF support is now available on Windows. This update contains a number of smaller fixed, a new workspace system and augmentation of the configuration system. The workspace system is a work in progress and may have unintended side effects when used in an active debugging session and I would'nt advise to rely too much on it yet.

Overall codeclap now basically has 3 configuration layers (Workspace -> Executable -> Configurations). Workspaces allow to save and switch every setting and all configurations. While configurations are now able to group startup configurations by executables making everything a bit cleaner. I tried to make all of that compatible with older versions and everything should just continue to work.

Also new are smaller features liked variable tooltips in source view, syntax highlighting and expression visualization for linked lists and image data.

The new syntax highlighting is enabled by default but I don't have much experience on how much CPU usage is generated by it in release builds so it can be disabled by choice.

All themes except Dark are currently a bit more broken than before, those will be reworked for one of the next updates.

Following is a changelog containing the more important changes.

Download it at: https://codeclap.itch.io/codeclap


[00.08.28]
* Added a new expression visualization ",asm" showing the expression value as assembly region
* Added workspace capability. This allows to save and switch the application state from and to files
* Fixed deleting of single arguments/env variables when clearing the text edit, previously all consecutive fields would been cleared as well
* Fixed most UI controls not correctly handling the internal left padding
* [Windows] Fixed a failure to open the default workspace multiple times which caused every additional instance of codeclap to crash on startup
* Fixed a UI bug that would consider an element active for 1 frame that is behind two elements and the pointer changing between both elements
* Changed titlebars to not receive input when the panel is not moveable
* Use the same logic to resolve the executable path and when starting to debug a given file
* Smaller fixes to C++ expressions
* Added a button in the Windows menu to reset the panel layout
* [DWARF] Implemented DW_AT_specification which is emitted by GCC for C++ code
* [Windows] Fixed a bug in the MSVC packaging scripts that created a debug build by accident

[00.08.24]
* Added simple syntax highlighting
* [DWARF] Added stubs for DW_ATE_utf encoding (C++11)
* [Linux/macOS] Added breaking on throw/catch exception for glibc; improved functionality to not fail in edge cases
* Autocomplete: Give exact matches priority and show as first item if found in the result list
* [Windows] Initial support for DWARF debug information
* [Windows] New tests: gcc and clang with gnu target and DWARF debug information
* Added expression display: ",img,x=..,y=..[,bpp=..][,scale=..]"
* Added expression display: ",list,member[,limit=..]"
* Added initial undo/redo functionality
* Improved contents for threads and stacktrace panels
This release is very nice! I have however found one crash, when using the new image preview feature. If you just enter expr, img without specifying a width/height the debugger will crash. There also seems to be some issue with expressions in the watch window not refreshing when stepping, though I'm not completely sure what is going on there yet.
spx
Edited by spx on
seventh-chord
This release is very nice! I have however found one crash, when using the new image preview feature. If you just enter expr, img without specifying a width/height the debugger will crash. There also seems to be some issue with expressions in the watch window not refreshing when stepping, though I'm not completely sure what is going on there yet.


You are right. ,img was missing one check to prevent invalid access in case no parameters were given at all. I've uploaded a quick .1 to fix this particular problem.

Out of my head I am not aware of any change with updating expression values, at least for "plain" expressions, but maybe you found something that needs fixing in general.
Some expanded structs (thinking of the new ,list feature in particular) will not update unless collapsed and expanded again. I will look into improving this in the future. It is also planned to give better feedback for things like ",img" when not passing everything that is necessary by either showing a help message or (preferably) showing input fields for missing values.
Awesome, looking forward to using it !
spx
Edited by spx on
Additional new issue that was brought to my attention:
The active line for previous frames (when selected in the stacktrace/call stack) is not shown/highlighted when syntax highlighting is enabled (https://issues.codeclap.cc/view.php?id=44)
Edited by joe513 on Reason: typo
Another issue I have noticed is with arrays. After adding "listA" to the expression window and expanding, all 10 elements are visible. Doing the same with listB only shows the first element. "listA[1]" shows the element while "listB[1]" shows "array index out of range". Seems like any time an array size is set with a variable instead of an integer this happens.

1
2
3
4
5
6
7
8
9
int main()
{
    int count = 10;

    int listA[10];
    int listB[count];

    return 0;
}


Linux - gcc version 8.2.1