summaryrefslogtreecommitdiff
path: root/ddb/db_task_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'ddb/db_task_thread.c')
-rw-r--r--ddb/db_task_thread.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/ddb/db_task_thread.c b/ddb/db_task_thread.c
index 7927e674..f7fbb805 100644
--- a/ddb/db_task_thread.c
+++ b/ddb/db_task_thread.c
@@ -303,4 +303,29 @@ db_get_task_thread(
return;
}
+/*
+ * convert $mapXXX type DDB variable to map address
+ */
+void
+db_get_map(struct db_variable *vp,
+ db_expr_t *valuep,
+ int flag,
+ db_var_aux_param_t ap)
+{
+ task_t task;
+
+ if (flag != DB_VAR_GET) {
+ db_error("Cannot set to $map variable\n");
+ /* NOTREACHED */
+ }
+
+ if ((task = db_lookup_task_id(ap->suffix[0])) == TASK_NULL) {
+ db_printf("no such map($map%d)\n", ap->suffix[0]);
+ db_error(0);
+ /* NOTREACHED */
+ }
+
+ *valuep = (db_expr_t) task->map;
+}
+
#endif /* MACH_KDB */