On Tue, May 4, 2010 at 12:58 PM, Yossi Lev <yosef....@sun.com> wrote:
>
> Moreover, I know that the value that I'm getting is valid, because I had the 
> following printf statement:
>
> pid$target::ReportTx:entry
> /arg1 != 0 && this->numEntries != 0/
> {
>  printf("NumEntries: %lld\n", (long long)this->numEntries);
>  this->entry = 
> (ReadAcqEntry*)copyin((uintptr_t)&(this->rAcqArr[this->numEntries-1]),
>                                      sizeof(ReadAcqEntry));
>
>  this->pcInt = (uintptr_t)(this->entry->pc);
> /*  this->instr = stringof(this->pcInt);*/
>
>  printf("%p\t%d\t%d\t%d\n",
>         this->entry->pc,
>         this->entry->acqNum,
>         this->entry->upgradeNum + this->entry->contUpgradeNum,
>         this->entry->contUpgradeNum);
>  this->numEntries--;
> }
>
> and the results look fine.  The only problem is when I un-comment the 
> stringof statement.

So this->entry->ps is a userspace pointer?  If that's the case, then
you want copyinstr(), not stringof().

Chad
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to