Hi, It turns out that on sparc64, doing something like show map /f *kernel_map in ddb, makes you crash with a nullpointer exception. Diff below makes sure we read all bytes of the pointer. The int in the original code also explains why amd64 (little-endian arch) never had a problem.
To test this, drop into ddb and type show map /f *kernel_map Without this diff, any big-endian 64-bit arch should have a null-pointer excepction. With this diff applied, the kernel allocation map should be printed. Please test the above to confirm this (I don't have the hardware here). PS, unmount your filesystems before testing! Ok? -- Ariane Index: ddb/db_expr.c =================================================================== RCS file: /cvs/src/sys/ddb/db_expr.c,v retrieving revision 1.8 diff -u -d -p -r1.8 db_expr.c --- ddb/db_expr.c 13 Mar 2006 06:23:20 -0000 1.8 +++ ddb/db_expr.c 18 May 2011 22:26:31 -0000 @@ -118,7 +118,7 @@ db_unary(db_expr_t *valuep) db_error("Syntax error\n"); /*NOTREACHED*/ } - *valuep = db_get_value((db_addr_t)*valuep, sizeof(int), FALSE); + *valuep = db_get_value((db_addr_t)*valuep, sizeof(db_addr_t), FALSE); return (TRUE); } db_unread_token(t);