I've been using RemedyBG for a couple of weeks now. Overall, I really like it. Here are some ideas to make this excellent debugger even better:
-
Lately, I've written and debugged a lot of parsers, and a common thing you want to do is look at a big string and highlight the current token you're processing. This's similar to the source file view or assembly window: you highlight the current line or instruction, and still can scroll up and down to look at the previous/next instructions. I can see the same idea apply here. Currently, I have to do something like
file->str + token->pos, str file->size
to view from the current token forward to the end of the file. If I want to look at all the previous tokens, then I'm out of luck (I can open a window to view from the beginning to the current token, but it's not great either). What I'm proposing is to have something likefile->str, str file->size { __current token->pos, token->size }
. You can apply this syntax to even more generic use cases like highlighting the current element in an array/table format or the current instruction in thedisasm
format. -
It's common for me to have a union and have multiple nested structs inside for overlapping fields like this:
union Vector2 {
struct { float a, b; }; struct { float x, y; }; struct { float min, max; }; struct { float start, end; }; float v[2];
};
If I just put a variable of this type in the watch window, it would display all the fields. I wish I could apply the table format specifier here and do something like
myVector2 { $.a, $.v[1] }
. This also can apply to any type if you want. For example, if I have aPlayer
type and only want to display thehealth
andmoney
fields, I can do thismyPlayer { $.health, $.money }
.