It is somewhat complex for someone like me with limited C programming to unearth the actual data(args and result) from the door call API. I beleive it has custom NSS headers packed along with actual data. Tracemem for most part is not that meaningful. If anyone has already done this, please share it.
I am startting to look at other places where I can get this data in a strcutured form. I started looking at pid$target:libc:_nsc_try1door:entry this is where I am now: BEGIN { last = timestamp; } typedef unsigned long long int door_ptr_t; /* Handle 64 bit pointers */ typedef unsigned long long int door_id_t; /* Unique door identifier */ typedef unsigned int door_attr_t; /* Door attributes */ typedef struct door_info { pid_t di_target; /* Server process */ door_ptr_t di_proc; /* Server procedure */ door_ptr_t di_data; /* Data cookie */ door_attr_t di_attributes; /* Attributes associated with door */ door_id_t di_uniquifier; /* Unique number */ int di_resv[4]; /* Future use */ } door_info_t; typedef struct _nsc_door_t { int doorfd; mutex_t door_lock; door_info_t doori; } nsc_door_t; pid$target:libc:_nsc_try1door:entry /curpsinfo->pr_dmodel == PR_MODEL_ILP32/ { /* args nsc_door_t *dp, void **dptr, size_t *ndata, size_t *adata, int *pdesc */ trace(timestamp - last); last = timestamp; self->dp = (struct _nsc_door_t *)copyin(arg0,sizeof(struct _nsc_door_t)); printf("doorfd %d di_proc %x",self->dp->doorfd,self->dp->doori.di_proc); tracemem(self->dp,100); } pid$target:libc:_nsc_try1door:return /curpsinfo->pr_dmodel == PR_MODEL_ILP32/ { trace(timestamp - last); last = timestamp; } I get a invalid alignement. dtrace: error on enabled probe ID 2 (ID 80106: pid13913:libc.so.1:_nsc_try1door:entry): invalid alignment (0x302124160ac) in action #5 at DIF offset 20 I think struct definitions above many not be correct. Now, my basic question is, is there a set of instructions that I can follow to convert structure definitions to 32bit and/or 64 bit. Nico, helped me last time, how can I do this myself? Is it out of my league? (meaning basic/medium C programming experience) Is there anything that I can read up further on userland data tracing 32/64 bit programs/libraries? Thank you for your help. -- This message posted from opensolaris.org _______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org