-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debugger always enabled #197
Conversation
If someone interested in having this feature - would like to have feedback and discussion ! |
First of all, I have no experience with Bochs debugger.
|
It supposed to work also with graphic debugger in place. // adds support for the GNU readline library in the debugger command in config.h |
There is always GUI debugger command line with all its options. About the default font, the font was selected by person who originally submitted the GUI debugger code. |
BTW, may be instead of having this .bochsrc option we should just fire debugger gui automatically if option -debugger was supplied. Or if -debugger=gui was supplied ... |
I think answer about which font to choose mainly depends on state of support of Windows XP as host OS. Also question above can me made non-relevant in case of implementing checking for font existence. Here is the list of popular fonts:
Also Cascadia Code exists, but it is probably available only on Windows 11. So I think it is better to select Consolas if it can be found and if not, then Lucida Console. |
4e58c1c
to
676bfd3
Compare
950c995
to
3bb37ca
Compare
3bb37ca
to
0ffa2f1
Compare
00ef96b
to
3b79ca3
Compare
3b79ca3
to
70ca40d
Compare
b32e94f
to
fff9af8
Compare
aa215ce
to
30ed864
Compare
Sorry for probably stupid questions. Title states "Debugger always enabled", but it is required to "compile Bochs with --enable-debugger". More precisely, I'm interested in how this change will affect release binaries (and binaries made with GitHub actions). |
The idea is to set --enable-debugger ON by default now and compile release binaries with debugger option ALWAYS. Meaning no separate debugger enabled binary anymore |
Will GUI debugger be also always enabled (by default)? |
Yes, if supported by currently present GUI |
I think moving this duplicated config interface code for simulation shutdown to one function with correct debugger handling is required before this code can go to master branch. I haven't noticed other issues with it yet. |
…zed run unfortunatelly doesn't work with all optimizations yet
(resolve chmod issue, no exe permissions)
…checking for bx_dbg.debugger_active every instruction
…l it even if debugger is not enabled
…all with assert(! bx_dbg.debugger_active) add if (bx_dbg.debugger_active) check in more places in the code to avoid redundant debugger methods invocation split bx_dbg_epilog method to debugger and gdbstub
use bx_dbg.debugger_active to select proper way of printing disasm instruction
fe664c1
to
c8a5d3f
Compare
I made necessary changes in prev commit.
smth like:
donno if bx_quit is the best function name |
I think the new code is now ready for the master branch. If issues appear, can fix them there. |
Please re-generate configure script before use :)
Allow to have debugger and non-debugger version in same binary.
Just compile Bochs with --enable-debugger and specify -debugger option in command line - and it run Bochs internal debugger. If -debugger not supplied it will run normal optimized build.
This is first draft of the idea provided for initial testing.
When -debugger is not supplied emulation speed is affected ~1% which I think if very reasonable taking into account extra capability.
When -debugger is supplied the emulation speed is affected severely as before.
There are potential ways how to make debugger cost cheaper (not addressed here yet):
Also:
and if already done it would be nice to do 'optimized continue' which will switch to fast mode until some even drops you into the debugger back.
Also code is just hacky for now, will be improving the logic while doing more testing.
Especially need to test without handlers chaining compiled and when SMP is enabled.
For now I need as much feedback as possible.
What to improve ?
Bugs ?
How to make it more user friendly ?