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