hi: I meet a error when I run dtrace on snv_34: ################################################################################################ seate:/ # uname -a SunOS seate 5.11 snv_34 i86pc i386 i86pc seate:/ # dtrace -n BEGIN dtrace: invalid probe specifier BEGIN: "/usr/lib/dtrace/procfs.d", line 333: cl_name is not a member of struct seate:/ # cat -n /usr/lib/dtrace/procfs.d ... 331 pr_syscall = T->t_sysnum; 332 pr_pri = T->t_pri; 333 pr_clname = `sclass[T->t_cid].cl_name; 334 pr_onpro = T->t_cpu->cpu_id; 335 pr_bindpro = T->t_bind_cpu; 336 pr_bindpset = T->t_bind_pset; ... seate:/ # mdb -k> ::nm !grep sclass0xfffffffffbc034f8|0x0000000000000190|OBJT |GLOB |0x0 |12 |sclass> 0xfffffffffbc034f8::print -t sclass_t{ char *cl_name = 0xfffffffffbc0af50 "SYS" int (*)() cl_init = sys_init classfuncs_t *cl_funcs = sys_classfuncs krwlock_t *cl_lock = 0xffffffff int cl_count = 0 }> ::sizeof sclass_tsizeof (sclass_t) = 0x28> 0xfffffffffbc034f8+0x28::print -t sclass_t{ char *cl_name = 0xffffffff82c3ed80 "TS" int (*)() cl_init = ts_init classfuncs_t *cl_funcs = ts_classfuncs krwlock_t *cl_lock = 0xffffffff82c3eda0 int cl_count = 0 } ################################################################################################ in usr/src/uts/common/conf/param.c 406 sclass_t sclass[] = { 407 { "SYS", sys_init, &sys_classfuncs, STATIC_SCHED, 0 }, 408 { "", NULL, NULL, NULL, 0 }, 409 { "", NULL, NULL, NULL, 0 }, 410 { "", NULL, NULL, NULL, 0 }, 411 { "", NULL, NULL, NULL, 0 }, 412 { "", NULL, NULL, NULL, 0 }, 413 { "", NULL, NULL, NULL, 0 }, 414 { "", NULL, NULL, NULL, 0 }, 415 { "", NULL, NULL, NULL, 0 }, 416 { "", NULL, NULL, NULL, 0 } 417 }; and in usr/src/uts/common/sys/class.h 105 typedef struct sclass { 106 char *cl_name; /* class name */ 107 /* class specific initialization function */ 108 pri_t (*cl_init)(id_t, int, classfuncs_t **); 109 classfuncs_t *cl_funcs; /* pointer to classfuncs structure */ 110 krwlock_t *cl_lock; /* class structure read/write lock */ 111 int cl_count; /* # of threads trying to load class */ 112 } sclass_t; ################################################################################################ source seems no change recently, why get this error while snv_31 work fine ? Cheers ????????zheh ????????zheh at 163.com ??????????2006-03-28
I just installed snv_34 and was unable to reproduce the problem you described. Is it possible there''s something screwy going on with the files in /usr/lib/dtrace? Please try running with DTRACE_DEBUG set in your environment and attach the output -- maybe that can give us some clue as to what''s going on. Adam On Tue, Mar 28, 2006 at 08:16:06PM +0800, zheh wrote:> hi: > I meet a error when I run dtrace on snv_34: > ################################################################################################ > seate:/ # uname -a > SunOS seate 5.11 snv_34 i86pc i386 i86pc > seate:/ # dtrace -n BEGIN > dtrace: invalid probe specifier BEGIN: "/usr/lib/dtrace/procfs.d", line 333: cl_name is not a member of struct > seate:/ # cat -n /usr/lib/dtrace/procfs.d > ... > 331 pr_syscall = T->t_sysnum; > 332 pr_pri = T->t_pri; > 333 pr_clname = `sclass[T->t_cid].cl_name; > 334 pr_onpro = T->t_cpu->cpu_id; > 335 pr_bindpro = T->t_bind_cpu; > 336 pr_bindpset = T->t_bind_pset; > ... > seate:/ # mdb -k > > ::nm !grep sclass > 0xfffffffffbc034f8|0x0000000000000190|OBJT |GLOB |0x0 |12 |sclass > > 0xfffffffffbc034f8::print -t sclass_t > { > char *cl_name = 0xfffffffffbc0af50 "SYS" > int (*)() cl_init = sys_init > classfuncs_t *cl_funcs = sys_classfuncs > krwlock_t *cl_lock = 0xffffffff > int cl_count = 0 > } > > ::sizeof sclass_t > sizeof (sclass_t) = 0x28 > > 0xfffffffffbc034f8+0x28::print -t sclass_t > { > char *cl_name = 0xffffffff82c3ed80 "TS" > int (*)() cl_init = ts_init > classfuncs_t *cl_funcs = ts_classfuncs > krwlock_t *cl_lock = 0xffffffff82c3eda0 > int cl_count = 0 > } > > ################################################################################################ > in usr/src/uts/common/conf/param.c > 406 sclass_t sclass[] = { > 407 { "SYS", sys_init, &sys_classfuncs, STATIC_SCHED, 0 }, > 408 { "", NULL, NULL, NULL, 0 }, > 409 { "", NULL, NULL, NULL, 0 }, > 410 { "", NULL, NULL, NULL, 0 }, > 411 { "", NULL, NULL, NULL, 0 }, > 412 { "", NULL, NULL, NULL, 0 }, > 413 { "", NULL, NULL, NULL, 0 }, > 414 { "", NULL, NULL, NULL, 0 }, > 415 { "", NULL, NULL, NULL, 0 }, > 416 { "", NULL, NULL, NULL, 0 } > 417 }; > > and in usr/src/uts/common/sys/class.h > 105 typedef struct sclass { > 106 char *cl_name; /* class name */ > 107 /* class specific initialization function */ > 108 pri_t (*cl_init)(id_t, int, classfuncs_t **); > 109 classfuncs_t *cl_funcs; /* pointer to classfuncs structure */ > 110 krwlock_t *cl_lock; /* class structure read/write lock */ > 111 int cl_count; /* # of threads trying to load class */ > 112 } sclass_t; > ################################################################################################ > > source seems no change recently, why get this error while snv_31 work fine ? > > > Cheers > > > ????????????????zheh > ????????????????zheh at 163.com > ????????????????????2006-03-28 >> _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org-- Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl
Adam Leventhal,??? Thanks for your response. I have knowned this problem''s root cause.This is not a dtrace''s bug, just because I replaced some system files like /kernel/genunix with version mismatch. ======= 2006-03-30 02:54:44 ????????======> >I just installed snv_34 and was unable to reproduce the problem you >described. Is it possible there''s something screwy going on with the >files in /usr/lib/dtrace? Please try running with DTRACE_DEBUG set in >your environment and attach the output -- maybe that can give us some >clue as to what''s going on. > >Adam > >On Tue, Mar 28, 2006 at 08:16:06PM +0800, zheh wrote: >> hi: >> I meet a error when I run dtrace on snv_34: >> ################################################################################################ >> seate:/ # uname -a >> SunOS seate 5.11 snv_34 i86pc i386 i86pc >> seate:/ # dtrace -n BEGIN >> dtrace: invalid probe specifier BEGIN: "/usr/lib/dtrace/procfs.d", line 333: cl_name is not a member of struct >> seate:/ # cat -n /usr/lib/dtrace/procfs.d >> ... >> 331 pr_syscall = T->t_sysnum; >> 332 pr_pri = T->t_pri; >> 333 pr_clname = `sclass[T->t_cid].cl_name; >> 334 pr_onpro = T->t_cpu->cpu_id; >> 335 pr_bindpro = T->t_bind_cpu; >> 336 pr_bindpset = T->t_bind_pset; >> ... >> seate:/ # mdb -k >> > ::nm !grep sclass >> 0xfffffffffbc034f8|0x0000000000000190|OBJT |GLOB |0x0 |12 |sclass >> > 0xfffffffffbc034f8::print -t sclass_t >> { >> char *cl_name = 0xfffffffffbc0af50 "SYS" >> int (*)() cl_init = sys_init >> classfuncs_t *cl_funcs = sys_classfuncs >> krwlock_t *cl_lock = 0xffffffff >> int cl_count = 0 >> } >> > ::sizeof sclass_t >> sizeof (sclass_t) = 0x28 >> > 0xfffffffffbc034f8+0x28::print -t sclass_t >> { >> char *cl_name = 0xffffffff82c3ed80 "TS" >> int (*)() cl_init = ts_init >> classfuncs_t *cl_funcs = ts_classfuncs >> krwlock_t *cl_lock = 0xffffffff82c3eda0 >> int cl_count = 0 >> } >> >> ################################################################################################ >> in usr/src/uts/common/conf/param.c >> 406 sclass_t sclass[] = { >> 407 { "SYS", sys_init, &sys_classfuncs, STATIC_SCHED, 0 }, >> 408 { "", NULL, NULL, NULL, 0 }, >> 409 { "", NULL, NULL, NULL, 0 }, >> 410 { "", NULL, NULL, NULL, 0 }, >> 411 { "", NULL, NULL, NULL, 0 }, >> 412 { "", NULL, NULL, NULL, 0 }, >> 413 { "", NULL, NULL, NULL, 0 }, >> 414 { "", NULL, NULL, NULL, 0 }, >> 415 { "", NULL, NULL, NULL, 0 }, >> 416 { "", NULL, NULL, NULL, 0 } >> 417 }; >> >> and in usr/src/uts/common/sys/class.h >> 105 typedef struct sclass { >> 106 char *cl_name; /* class name */ >> 107 /* class specific initialization function */ >> 108 pri_t (*cl_init)(id_t, int, classfuncs_t **); >> 109 classfuncs_t *cl_funcs; /* pointer to classfuncs structure */ >> 110 krwlock_t *cl_lock; /* class structure read/write lock */ >> 111 int cl_count; /* # of threads trying to load class */ >> 112 } sclass_t; >> ################################################################################################ >> >> source seems no change recently, why get this error while snv_31 work fine ? >> >> >> Cheers >> >> >> ????????zheh >> ????????zheh at 163.com >> ??????????2006-03-28 >> > >> _______________________________________________ >> dtrace-discuss mailing list >> dtrace-discuss at opensolaris.org > >-- >Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl >= = = = = = = = = = = = = = = = = = = Cheers ????????zheh ????????zheh at 163.com ??????????2006-03-30
Eric C. Saxe
2006-Mar-31 00:36 UTC
[dtrace-discuss] Re: got error when run dtrace on snv34
I just hit a similar error while doing some unrelated testing. I had my test system booted with an Install kernel tarball (or it may have just had a new unix slapped on). It looks as if the ctf data may have become confused. Perhaps something thought the tag associated with cl_name was associated with a different structure than struct sclass? When I booted back to the BFUed image DTrace was happy again. -Eric This message posted from opensolaris.org