Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#2919 closed bug (fixed)

on screen debug: entering + leaving the KDL prevents dividing log messages into pages

Reported by: Adek336 Owned by: axeld
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Platform: All


When I select on screen debug at boot time I can take my time to read each batch of log messages and when I want to move on I have to press a key. However if I press F12 for KDL (or enter because of an error) and leave the KDL, then the text is no longer white on black but black on white but more importantly, it doesn't stop after each page of messages.

Change History (6)

comment:1 by Adek336, 12 years ago


Upon entering the kernel debugger through enter_kernel_debugger(), blue_screen_enter() trashes the values of sScreen.attr and sScreen.boot_debug_output, which are not restored in exit_kernel_debugger().

comment:2 by Adek336, 12 years ago

proposed patch and typo fix.

Index: src/system/kernel/debug/debug.cpp
--- src/system/kernel/debug/debug.cpp   (revision 28658)
+++ src/system/kernel/debug/debug.cpp   (working copy)
@@ -781,6 +781,7 @@
        sDebugOutputFilter = NULL;
        sBlueScreenEnabled = false;
+       blue_screen_enter(sDebugScreenEnabled);
        atomic_add(&sInDebugger, -1);
@@ -1078,7 +1079,7 @@
        add_debugger_command_etc("syslog", &cmd_dump_syslog,
                "Dumps the syslog buffer.\n",
                "[-n]\nDumps the whole syslog buffer, or, if -n is specified, only "
-               "the part that hasn't been send yet.\n", 0);
+               "the part that hasn't been sent yet.\n", 0);
        return B_OK;

comment:3 by stippi, 12 years ago

I think you know what you're doing and should have commit access... :-)

comment:4 by Adek336, 12 years ago

Ah, thanks, I'm glad to hear that :-) Although then, I would probably be too nervous that I could commit something broken, that I wouldn't be able to code very much :-p

comment:5 by axeld, 12 years ago

Component: - GeneralSystem/Kernel
Resolution: fixed
Status: newclosed

Changed patch applied in hrev28841. Thanks Adrian! I've changed your patch a bit to only call blue_screen_enter() when sDebugOutputScreen is true - this both saves superfluous work in the usual case, and makes the code clearer (ie. why *enter* is called on exit).

comment:6 by Adek336, 12 years ago

And the typo!

Note: See TracTickets for help on using tickets.