Re: db_sym_numargs() is always false

2016-03-02 Thread Mike Larkin
On Tue, Mar 01, 2016 at 01:04:42PM +0100, Martin Pieuchot wrote:
> I'd like to remove this dead code because I'd like to unify to some
> extend the frame walking code between archs and this doesn't help.
> 
> ok?

reads ok to me, go for it if it's not already in.

-ml

> 
> diff --git sys/arch/amd64/amd64/db_trace.c sys/arch/amd64/amd64/db_trace.c
> index 7c86efe..27fe24d 100644
> --- sys/arch/amd64/amd64/db_trace.c
> +++ sys/arch/amd64/amd64/db_trace.c
> @@ -244,8 +244,6 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
> db_expr_t count,
>   char *  name;
>   db_expr_t   offset;
>   db_sym_tsym;
> -#define MAXNARG  16
> - char*argnames[MAXNARG], **argnp = NULL;
>  
>   sym = db_search_symbol(callpc, DB_STGY_ANY, );
>   db_symbol_values(sym, , NULL);
> @@ -284,11 +282,7 @@ db_stack_trace_print(db_expr_t addr, boolean_t 
> have_addr, db_expr_t count,
>   } else {
>   normal:
>   is_trap = NONE;
> - narg = MAXNARG;
> - if (db_sym_numargs(sym, , argnames))
> - argnp = argnames;
> - else
> - narg = db_numargs(frame);
> + narg = db_numargs(frame);
>   }
>  
>   (*pr)("%s(", name);
> @@ -304,8 +298,6 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
> db_expr_t count,
>   }
>  
>   while (narg) {
> - if (argnp)
> - (*pr)("%s=", *argnp++);
>   (*pr)("%lx", db_get_value((db_addr_t)argp, 8, FALSE));
>   argp++;
>   if (--narg != 0)
> diff --git sys/arch/hppa/hppa/db_interface.c sys/arch/hppa/hppa/db_interface.c
> index 8270fe6..17aff81 100644
> --- sys/arch/hppa/hppa/db_interface.c
> +++ sys/arch/hppa/hppa/db_interface.c
> @@ -244,7 +244,6 @@ db_stack_trace_print(addr, have_addr, count, modif, pr)
>   db_sym_t sym;
>   db_expr_t off;
>   char *name;
> - char **argnp, *argnames[HPPA_FRAME_NARGS];
>   int nargs;
>  
>   if (count < 0)
> @@ -274,19 +273,12 @@ db_stack_trace_print(addr, have_addr, count, modif, pr)
>   (*pr)("%s(", name);
>  
>   /* args */
> - nargs = HPPA_FRAME_NARGS;
> - argnp = NULL;
> - if (db_sym_numargs(sym, , argnames))
> - argnp = argnames;
> - else
> - nargs = 4;
> + nargs = 4;
>   /*
>* XXX first four args are passed on registers, and may not
>* be stored on stack, dunno how to recover their values yet
>*/
>   for (argp = [-9]; nargs--; argp--) {
> - if (argnp)
> - (*pr)("%s=", *argnp++);
>   (*pr)("%x%s", db_get_value((int)argp, 4, FALSE),
> nargs? ",":"");
>   }
> diff --git sys/arch/hppa64/hppa64/db_interface.c 
> sys/arch/hppa64/hppa64/db_interface.c
> index e5be765..c7d2636 100644
> --- sys/arch/hppa64/hppa64/db_interface.c
> +++ sys/arch/hppa64/hppa64/db_interface.c
> @@ -213,7 +213,6 @@ db_stack_trace_print(db_expr_t addr, int have_addr, 
> db_expr_t count,
>   db_sym_t sym;
>   db_expr_t off;
>   char *name;
> - char **argnp, *argnames[8];
>   int nargs;
>  
>   if (count < 0)
> @@ -244,18 +243,11 @@ db_stack_trace_print(db_expr_t addr, int have_addr, 
> db_expr_t count,
>  
>   /* args */
>   nargs = 8;
> - argnp = NULL;
> - if (db_sym_numargs(sym, , argnames))
> - argnp = argnames;
> - else
> - nargs = 4;
>   /*
>* XXX first eight args are passed on registers, and may not
>* be stored on stack, dunno how to recover their values yet
>*/
>   for (argp = [-9]; nargs--; argp--) {
> - if (argnp)
> - (*pr)("%s=", *argnp++);
>   (*pr)("%x%s", db_get_value((long)argp, 8, FALSE),
> nargs? ",":"");
>   }
> diff --git sys/arch/i386/i386/db_trace.c sys/arch/i386/i386/db_trace.c
> index 72d968a..e867dc2 100644
> --- sys/arch/i386/i386/db_trace.c
> +++ sys/arch/i386/i386/db_trace.c
> @@ -233,8 +233,6 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
> db_expr_t count,
>   char *  name;
>   db_expr_t   offset;
>   db_sym_tsym;
> -#define MAXNARG  16
> - char*argnames[MAXNARG], **argnp = NULL;
>  
>   sym = db_search_symbol(callpc, DB_STGY_ANY, );
>   db_symbol_values(sym, , NULL);
> @@ -272,11 +270,7 @@ 

Re: db_sym_numargs() is always false

2016-03-01 Thread Mike Belopuhov
On 1 March 2016 at 13:04, Martin Pieuchot  wrote:
> I'd like to remove this dead code because I'd like to unify to some
> extend the frame walking code between archs and this doesn't help.
>
> ok?
>

OK mikeb



db_sym_numargs() is always false

2016-03-01 Thread Martin Pieuchot
I'd like to remove this dead code because I'd like to unify to some
extend the frame walking code between archs and this doesn't help.

ok?

diff --git sys/arch/amd64/amd64/db_trace.c sys/arch/amd64/amd64/db_trace.c
index 7c86efe..27fe24d 100644
--- sys/arch/amd64/amd64/db_trace.c
+++ sys/arch/amd64/amd64/db_trace.c
@@ -244,8 +244,6 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
db_expr_t count,
char *  name;
db_expr_t   offset;
db_sym_tsym;
-#define MAXNARG16
-   char*argnames[MAXNARG], **argnp = NULL;
 
sym = db_search_symbol(callpc, DB_STGY_ANY, );
db_symbol_values(sym, , NULL);
@@ -284,11 +282,7 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
db_expr_t count,
} else {
normal:
is_trap = NONE;
-   narg = MAXNARG;
-   if (db_sym_numargs(sym, , argnames))
-   argnp = argnames;
-   else
-   narg = db_numargs(frame);
+   narg = db_numargs(frame);
}
 
(*pr)("%s(", name);
@@ -304,8 +298,6 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
db_expr_t count,
}
 
while (narg) {
-   if (argnp)
-   (*pr)("%s=", *argnp++);
(*pr)("%lx", db_get_value((db_addr_t)argp, 8, FALSE));
argp++;
if (--narg != 0)
diff --git sys/arch/hppa/hppa/db_interface.c sys/arch/hppa/hppa/db_interface.c
index 8270fe6..17aff81 100644
--- sys/arch/hppa/hppa/db_interface.c
+++ sys/arch/hppa/hppa/db_interface.c
@@ -244,7 +244,6 @@ db_stack_trace_print(addr, have_addr, count, modif, pr)
db_sym_t sym;
db_expr_t off;
char *name;
-   char **argnp, *argnames[HPPA_FRAME_NARGS];
int nargs;
 
if (count < 0)
@@ -274,19 +273,12 @@ db_stack_trace_print(addr, have_addr, count, modif, pr)
(*pr)("%s(", name);
 
/* args */
-   nargs = HPPA_FRAME_NARGS;
-   argnp = NULL;
-   if (db_sym_numargs(sym, , argnames))
-   argnp = argnames;
-   else
-   nargs = 4;
+   nargs = 4;
/*
 * XXX first four args are passed on registers, and may not
 * be stored on stack, dunno how to recover their values yet
 */
for (argp = [-9]; nargs--; argp--) {
-   if (argnp)
-   (*pr)("%s=", *argnp++);
(*pr)("%x%s", db_get_value((int)argp, 4, FALSE),
  nargs? ",":"");
}
diff --git sys/arch/hppa64/hppa64/db_interface.c 
sys/arch/hppa64/hppa64/db_interface.c
index e5be765..c7d2636 100644
--- sys/arch/hppa64/hppa64/db_interface.c
+++ sys/arch/hppa64/hppa64/db_interface.c
@@ -213,7 +213,6 @@ db_stack_trace_print(db_expr_t addr, int have_addr, 
db_expr_t count,
db_sym_t sym;
db_expr_t off;
char *name;
-   char **argnp, *argnames[8];
int nargs;
 
if (count < 0)
@@ -244,18 +243,11 @@ db_stack_trace_print(db_expr_t addr, int have_addr, 
db_expr_t count,
 
/* args */
nargs = 8;
-   argnp = NULL;
-   if (db_sym_numargs(sym, , argnames))
-   argnp = argnames;
-   else
-   nargs = 4;
/*
 * XXX first eight args are passed on registers, and may not
 * be stored on stack, dunno how to recover their values yet
 */
for (argp = [-9]; nargs--; argp--) {
-   if (argnp)
-   (*pr)("%s=", *argnp++);
(*pr)("%x%s", db_get_value((long)argp, 8, FALSE),
  nargs? ",":"");
}
diff --git sys/arch/i386/i386/db_trace.c sys/arch/i386/i386/db_trace.c
index 72d968a..e867dc2 100644
--- sys/arch/i386/i386/db_trace.c
+++ sys/arch/i386/i386/db_trace.c
@@ -233,8 +233,6 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
db_expr_t count,
char *  name;
db_expr_t   offset;
db_sym_tsym;
-#define MAXNARG16
-   char*argnames[MAXNARG], **argnp = NULL;
 
sym = db_search_symbol(callpc, DB_STGY_ANY, );
db_symbol_values(sym, , NULL);
@@ -272,11 +270,7 @@ db_stack_trace_print(db_expr_t addr, boolean_t have_addr, 
db_expr_t count,
} else {
normal:
is_trap = NONE;
-   narg = MAXNARG;
-