c[ode]clap»Blog

alpha 0.8.17

spx
0.8.17 has finally arrived as an intermediate build on the way to 0.9.

One of the new features you probably can't miss is a new panel system which allows to freely change around the layout within the window. I would have liked to give this new system more testing but it is about time to finally push a new build and since I haven't encountered any issues with this for a bit and it hopefully just works.
The output window is not floating by default in this build. If you don't want this behavior just drag the window wherever you want and it should behave just as before.

The rest of codeclap has received the usual, and in parts increased, amount of testing. There are still padding/alignment issues and missing borders in some places, this will be subject to all the fixing planned for the 0.9 phase. A few of the other new features haven't been mentioned yet but will be once all the remaining ones listed below are in place.

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

Major features planned for the next build
  • Simple syntax highlighting
  • Variable inspection on mouse over
  • DWARF support on Windows
  • Improved project/configuration system (multiple startup configurations per binary, more intuitive configuration system, save/open workspaces)



CHANGELOG since 00.08.03

[00.08.17]
* Improved rendering of tab headers in tabbed panels
* Added ability to change the order of tabs
* Added additional handles to panels to either merge with the inner panel of a tabbed panel or with the tabbed panel itself
* Improved compatibility of the new panel system with overlay mode
* Changed output window to integrate into the new panel system
* [Windows] Pass the program name/path as first parameter as expected by all common environments
* [Windows] Additional tests for clang on Windows with -msvc target

[00.08.14]
* [PDB] Fixed a wrong condition that would cause the first source line of a mapped region to not map correctly
* Removed artificial spacing between subprograms in debugger view
* Added special handling of certain STL containers: list, vector, set and map (enabled by "C++ support" in configurations)
* Added an option to break on C++ exception throw and catch
* [Windows] Process certain WM_SYSCOMMAND messages, this prevents shortcuts like F10 to trigger the sysmenu
* [Windows] Fixed the state of certain modifiers to stick when suddenly losing focus because of windows hotkeys
* [PDB] Added name lookup for static global variables
* [PDB] Added name lookup for non-static global variables
* Added additional test cases (exception breakpoints, handling of different startup configurations)
* [Windows] Added missing passing of defined environment variables to the child process
* Fixed a regression expanding plain arrays in the expression window
* [Linux/macOS] Fixed a bug that would expand structs either partially or containing duplicated depending of the order of debug information
* [Linux] Fixed startup from command line with "run to" functionality as argument
* Fixed deleting configurations in the history window or clearing all unpinned configurations to use the correct deletion function
(this prevents the debugger from starting an already deleted configuration)
* Improved the autocomplete dialog to have an individual order of types depending of the using functionality
(autocomplete in the expression panel shows variables before functions)
* [Linux] Changed detection for overlay mode to actually check for a running compositor
* [Linux] Fixed a bug in overlay mode that would fail to regain focus when leaving any panel with the mouse
* [PDB] Fixed a bug that would sometimes fail to correctly parse the modules in the DBI stream
* [PDB] Fixes for loclist processing, this fixes an issue encountered trying to debug clang generated executables
* [Windows] Skip unrealistic line numbers in line/addr mapping (sometimes cl.exe can output wrong line numbers for preprocessor macros, verified with cvdump)
* Changed inlined variable printing to follow the currently selected address in the stacktrace
* Changed adding expressions to target the currently selected address in the stacktrace by default instead of the topmost frame
* Added new settings
. Show stacktrace as panel (from active thread)
. Enable/disable stacktrace overlay
. Clear output when starting an executable
. Never insert a new line to display inlined variables in source view
. Automatically focus the first item when autocomplete is available
* Fixed a rare crash caused by wrongly interpreting debug information from one debug source in the context of another when the program execution would pass over certain mapping boundaries
* Removed keybinding for "Start" shortcut from "visual studio" key template, changed "Continue" and "Step into" shortcuts to be available without a running program
* Added a panel system that allows to drag and dock all panels
* [PDB] Implemented additional leaf types mainly used in C++ code
* [DWARF] Fixed processing of ref_addr to use the addr size of the target architecture instead of the addr size of the info section when version 2 or earlier
Edited by albatros on
So sweet !!!

spx
* Linux : Fixed startup from command line with "run to" functionality as argument

I'm in heaven :D
spx
Edited by spx on
albatros
So sweet !!!


Hope everything works well for you now. I already noticed a small issue with the resize handles of the new panels that can (when dragged) lose focus to each other depending on their order. Will upload a 0.8.18 for that really soon.
Edited by albatros on
I've not yet encountered this bug.

I've gotta say, after one more week of heavy usage whit this new version, this is insanely good.
I'm currently have to work with the ffmpeg api, powerful but very badly documented, with deprecated code examples, and gigantic structs and objects. To be honest, I'm not sure I could have navigated theses huge strucs and debugged properly without codeclap giving me visualization and making me able to understand what is actually going on.

I remember the way I felt when I discovered emacs at the time. It was so empowering compared to what I was used to that I had dreams of it. Copeclap is quite close to this.
spx
Edited by spx on
albatros
I've not yet encountered this bug.

I've gotta say, after one more week of heavy usage whit this new version, this is insanely good.
I'm currently have to work with the ffmpeg api, powerful but very badly documented, with deprecated code examples, and gigantic structs and objects. To be honest, I'm not sure I could have navigated theses huge strucs and debugged properly without codeclap giving me visualization and making me able to understand what is actually going on.

I remember the way I felt when I discovered emacs at the time. It was so empowering compared to what I was used to that I had dreams of it. Copeclap is quite close to this.


To be fair I think Linux is one of the easier platforms to achieve improvement on, which is also true in many parts for macOS.
Windows on the other hand is a bit of a more difficult beast mostly because of the unique position of visual studio over the years compared to all the other software out there.
However one designated goal I have is to beat visual studio on windows (at least the important parts) and bringing that to Linux and macOS.

I guess what makes codeclap on Linux stand out in your case in comparison to something like qt creator (leaving out all the project system madness) is the ability to just fire up the debugger and quickly get where you want with the command line interface? (at least out of my head I don't know if you could've used some other gdb or lldb frontend to act similarly)

Meanwhile it was also brought to my attention that there was a smaller but noticeable performance regression with the last build that mostly affects Windows and increases the start time of debugging sessions by a few seconds. That will be taken care of with the next update which should be ready in a little over or under 1 week.