SVN revision 10450 changed the generated cdb file format to add support for C99 intermingling of declaration and statements but SDCDB was not changed to parse the new format.
The numeric 'level' value was changed into 'levelmsb_levellsb' which SDCDB incorrectly parses. This can cause crashes when setting breakpoints amongst other symbol issues.
As far as I can see this change to the cdb file format is now documented anywhere and conflicts with the documentation found at https://sourceforge.net/p/sdcc/wiki/CDB%20File%20Format/.
This problem affects all platforms.
These changes affect all releases of SDCC from 3.8.0 onwards.
To reproduce this bug build the example source file shown below and run in sdcdb using:
Using sdcc 3.6.0 b[reak] main and b[reak] load_all work as expected. Using sdcc 4.2.0 and the current SVN head they cause the debugger to exit with an illegal memory access. This occurs on Windows 10 and Debian Bullseye.
Save the code below as bug3529.c
Fixed by applying your patch [patches:#450] in [r14664].
Related
Commit: [r14664]
Patches:
#450