Keith,

what do you see with this testapp? I get an ugly dotted square, which
usually confuses copy&paste into a bugzilla. Also the mirroring between
various bugzilla screws it up even more. All output should be either
plain ASCII or UTF-8. I'm sure kdb should not care about any locale
other than ASCII, so its better to just mask the non-printable bytes.

#include <stdio.h>
int main(void)
{
        unsigned char buf[2];
        buf[0] = 0xc0;
        buf[1] = '\0';
        printf("%s\n", buf);
        return 0;
}




The kernel considers 0xc0-0xff as printable chars, this leads to
binary garbage. Just mask it to ASCII.

Signed-off-by: Olaf Hering <[EMAIL PROTECTED]>

Index: linux-2.6.5/kdb/kdbmain.c
===================================================================
--- linux-2.6.5.orig/kdb/kdbmain.c
+++ linux-2.6.5/kdb/kdbmain.c
@@ -2091,7 +2091,7 @@ kdb_md_line(const char *fmtstr, kdb_mach
                        cp = wc.c;
 #endif
                        wc.word = word;
-#define printable_char(c) ({unsigned char __c = c; isprint(__c) ? __c : '.';})
+#define printable_char(c) ({unsigned char __c = toascii(c); isalnum(__c) ? __c 
: '.';})
                        switch (bytesperword) {
                        case 8:
                                *c++ = printable_char(*cp++);

---------------------------
Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.

Reply via email to