aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorYaroslav Tykhiy <ytykhiy@gmail.com>2006-06-16 11:49:37 +0000
committerYaroslav Tykhiy <ytykhiy@gmail.com>2006-06-16 11:49:37 +0000
commita436dbf123465c6b803c8bd78be1b461b7a62468 (patch)
tree372beb84edfc15709b8436a38eb8e0fef0501269 /sys
parent93ad18ec7f3f984fc3898cfb5d3ec926570209de (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/i386/i386/db_trace.c12
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");