bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 04/28] ddb/db_examine.c: modify db_xcdump()


From: Marin Ramesa
Subject: [PATCH 04/28] ddb/db_examine.c: modify db_xcdump()
Date: Sun, 8 Dec 2013 12:40:06 +0100

Check for uninitialized data and print a message if that is the case.

* ddb/db_examine.c (db_xcdump) (data_uninitialized): New variable.
(db_xcdump): Check if data is uninitialized.
(db_xcdump): Print a message if that is the case.

---
 ddb/db_examine.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/ddb/db_examine.c b/ddb/db_examine.c
index 7820396..1ceff41 100644
--- a/ddb/db_examine.c
+++ b/ddb/db_examine.c
@@ -458,6 +458,7 @@ db_xcdump(addr, size, count, task)
        db_addr_t       off;
        char            *name;
        char            data[DB_XCDUMP_NC];
+       boolean_t       data_uninitialized = TRUE;
 
        db_find_task_sym_and_offset(addr, &name, &off, task);
        for (n = count*size; n > 0; n -= bcount) {
@@ -474,7 +475,8 @@ db_xcdump(addr, size, count, task)
                if (!DB_CHECK_ACCESS(next_page_addr, sizeof(int), task))
                    bcount = next_page_addr - addr;
            }
-           db_read_bytes(addr, bcount, data, DB_XCDUMP_NC, task);
+           if (db_read_bytes(addr, bcount, data, DB_XCDUMP_NC, task) == 0)
+               data_uninitialized = FALSE;
            for (i = 0; i < bcount && off != 0; i += size) {
                if (i % 4 == 0)
                        db_printf(" ");
@@ -488,11 +490,15 @@ db_xcdump(addr, size, count, task)
                         "");
            bcount = i;
            db_printf("%s*", (size != 1)? " ": "");
-           for (i = 0; i < bcount; i++) {
-               value = data[i];
-               db_printf("%c", (value >= ' ' && value <= '~')? value: '.');
+           if (!data_uninitialized) {
+               for (i = 0; i < bcount; i++) {
+                       value = data[i];
+                       db_printf("%c", (value >= ' ' && value <= '~')? value: 
'.');
+               }
+               db_printf("*\n");
            }
-           db_printf("*\n");
+           else
+               db_printf("\nuninitialized data\n");
        }
        return(addr);
 }
-- 
1.8.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]