[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
[PATCH 05/28] i386/i386/db_interface.c: remove forward declaration, Marin Ramesa, 2013/12/08
[PATCH 07/28] ddb/db_aout.c (aout_db_sym_init): remove unnecessary variable, Marin Ramesa, 2013/12/08
[PATCH 08/28] ddb/db_aout.c (aout_db_eq_name): remove unnecessary variable, Marin Ramesa, 2013/12/08