diff options
| author | Yaroslav Tykhiy <ytykhiy@gmail.com> | 2006-06-16 11:49:37 +0000 |
|---|---|---|
| committer | Yaroslav Tykhiy <ytykhiy@gmail.com> | 2006-06-16 11:49:37 +0000 |
| commit | a436dbf123465c6b803c8bd78be1b461b7a62468 (patch) | |
| tree | 372beb84edfc15709b8436a38eb8e0fef0501269 /sys | |
| parent | 93ad18ec7f3f984fc3898cfb5d3ec926570209de (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/i386/i386/db_trace.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/i386/i386/db_trace.c b/sys/i386/i386/db_trace.c index 91e91a021bfc..99f941b4e301 100644 --- a/sys/i386/i386/db_trace.c +++ b/sys/i386/i386/db_trace.c @@ -212,7 +212,7 @@ db_numargs(fp) * may require better fault handling. */ if (argp < btext || argp >= etext) { - args = 5; + args = -1; } else { retry: inst = db_get_value((int)argp, 4, FALSE); @@ -224,7 +224,7 @@ retry: argp += 2; goto retry; } else - args = 5; + args = -1; } return (args); } @@ -237,15 +237,19 @@ db_print_stack_entry(name, narg, argnp, argp, callpc) int *argp; db_addr_t callpc; { + int n = narg >= 0 ? narg : 5; + db_printf("%s(", name); - while (narg) { + while (n) { if (argnp) db_printf("%s=", *argnp++); db_printf("%r", db_get_value((int)argp, 4, FALSE)); argp++; - if (--narg != 0) + if (--n != 0) db_printf(","); } + if (narg < 0) + db_printf(",..."); db_printf(") at "); db_printsym(callpc, DB_STGY_PROC); db_printf("\n"); |
