fix source markup parsing, release notes for source-defined watch annotations

This commit is contained in:
Ryan Fleury
2025-03-26 11:49:15 -07:00
parent bd35ea83fc
commit 48f0702e05
3 changed files with 18 additions and 7 deletions
+4 -4
View File
@@ -1642,9 +1642,9 @@ fancy_viz_eval_tests(void)
" return 0;\n" " return 0;\n"
"}\n\n"); "}\n\n");
int x1 = 0; int x1 = 0;
raddbg_pin(long_string, "text"); raddbg_pin(long_string, text);
raddbg_pin(code_string, "text(lang=c)"); raddbg_pin(code_string, text(lang=c));
raddbg_pin(fancy_viz_eval_tests, "disasm"); raddbg_pin(fancy_viz_eval_tests, disasm);
//- rjf: bitmaps //- rjf: bitmaps
unsigned int background_color = 0x00000000; unsigned int background_color = 0x00000000;
@@ -1676,7 +1676,7 @@ fancy_viz_eval_tests(void)
bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg,
bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg,
}; };
raddbg_pin(bitmap, "bitmap:(w:18, h:18)"); raddbg_pin(bitmap, bitmap(18, 18));
for(int i = 0; i < sizeof(bitmap)/sizeof(bitmap[0]); i += 1) for(int i = 0; i < sizeof(bitmap)/sizeof(bitmap[0]); i += 1)
{ {
unsigned int r = bitmap[i]&0x000000ff; unsigned int r = bitmap[i]&0x000000ff;
+12 -2
View File
@@ -35,11 +35,21 @@
// common case is debugging a small number of programs, usually 1, and for // common case is debugging a small number of programs, usually 1, and for
// those purposes, the `Threads` view is sufficient if not desirable, and // those purposes, the `Threads` view is sufficient if not desirable, and
// the extra information provided by `Processes` and `Machines`, while useful // the extra information provided by `Processes` and `Machines`, while useful
// in other contexts, is not useful in that common case. // in other contexts, is not useful in that common case. The `Machines` view
// now shows a superset of the information previosuly found in the
// `Scheduler` view.
// - The two separate interfaces for editing threads, breakpoints, and watch // - The two separate interfaces for editing threads, breakpoints, and watch
// pins (the right-click context menu and the dedicated tabs) have been // pins (the right-click context menu and the dedicated tabs) have been
// merged. // merged.
// - Added the ability to add per-target environment strings. // - Added the ability to add a list environment strings to targets.
// - Added support for watch annotations derived from source code markup,
// rather than only from configuration. Instances of
// `raddbg_pin(<expr>, <view_rule>)` will be parsed, and used to create watch
// annotations inline with source code, in the same way that watch pins do.
// For instance, `raddbg_pin(dynamic_array, slice)` will visualize
// `dynamic_array` with a `slice` view rule;
// `raddbg_pin(some_function, disasm)` will visualize `some_function` as
// disassembly; and so on.
// - Fixed an annoyance where the debugger would open a console window, even // - Fixed an annoyance where the debugger would open a console window, even
// for graphical programs, causing a flicker. // for graphical programs, causing a flicker.
+2 -1
View File
@@ -1910,9 +1910,10 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
U64 arg_start_off = 0; U64 arg_start_off = 0;
for(U64 contents_off = 0; contents_off <= contents.size; contents_off += 1) for(U64 contents_off = 0; contents_off <= contents.size; contents_off += 1)
{ {
if(contents_off == contents.size || contents.str[contents_off] == ',') if(nest == 0 && (contents_off == contents.size || contents.str[contents_off] == ','))
{ {
String8 arg = str8_substr(contents, r1u64(arg_start_off, contents_off)); String8 arg = str8_substr(contents, r1u64(arg_start_off, contents_off));
arg = str8_skip_chop_whitespace(arg);
str8_list_push(scratch.arena, &args, arg); str8_list_push(scratch.arena, &args, arg);
arg_start_off = contents_off+1; arg_start_off = contents_off+1;
} }