search for: pr_dmodel

Displaying 5 results from an estimated 5 matches for "pr_dmodel".

2006 Aug 08
9
Handling userland char ** pointers
I''ve been trying to get access to a userland string that''s behind a second level pointer using DTrace, but I can''t seem to get it to work. I started with the example on the Team DTrace Tips and Tricks slides: trace(copyinstr(*(uintptr_t *)copyin(arg0, curpsinfo->pr_dmodel == PR_MODEL_ILP32 ? 4 : 8))); And when I couldn''t get it to work, I started breaking it down into smaller pieces to see what was going on at each step. Here''s the "C" and "D" code: --- pt.c --- static int sz = sizeof(char *); main() { char *s = &quot...
2010 Mar 19
2
Using DTrace in 32-bit to handle 64-bit parameters [72631230]
...Small example: > provider adv { > probe myprobe(int64_t param1, int32_t param2, int64_t > param3); > }; > > Dtrace probe: > adv$1:::myprobe > { > /* translation section */ > this->param1 = (curpsinfo->pr_dmodel == PR_MODEL_LP64) ? > arg0 : (`utsname.machine == "i86pc") ? ((arg1 << 32) | > arg0) : ((arg0 << 32) | arg1); > this->param2 = (curpsinfo->pr_dmodel == PR_MODEL_LP64) ? > arg1 : arg2; > this->par...
2006 Jul 17
7
access to errno when using pid provider
I would like to know how to get access to errno when using pid provider to probe calls to libc functions like fopen(). The built-in errno appears to be only for system calls. What I''d like to be able to do is investigate where in an application I''m encountering EMFILE and what the stack looks like at the time. This message posted from opensolaris.org
2006 Feb 15
4
Script for Stackdepth by Thread/LWP?
I''m interested in monitoring the amount of stack used by a multi-threaded program. I assume ''stackdepth'' built-in would be useful...but not sure. Been through demo''s, ToolKit, and internals..but it''s just not clicking for me yet. Not sure how to measure start/end of stack size dynamically...Anyone know how to break this down? This message posted from
2008 Mar 04
0
Determining curthread pointer (ulwp_t) via libproc on i386
...;cannot control process %d\n", pid); exit(1); } if ((lwp = &Pstatus(Pr)->pr_lwp) == NULL) { fprintf(stderr, "Couldn''t grab pr_lwp\n"); exit(1); } #if defined(__amd64) if (Pstatus(Pr)->pr_dmodel == PR_MODEL_LP64) { addr = lwp->pr_reg[REG_FSBASE]; } else { addr = lwp->pr_reg[REG_GSBASE]; } #else #error "Need to figure this out" #endif printf("ulwp_t is 0x%lx\n", addr); ----------------------------------------...