Re: db_sym_numargs() is always false
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
On 1 March 2016 at 13:04, Martin Pieuchotwrote: > 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
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; -