I have a C program,
$cat sample.cpp
    #include <stdio.h>
    #include <memory.h>
    #include <stdlib.h>
    struct xxx
    {
       int yyy;
       int zzz;
       const char *name;
    };


    void sub1 (struct xxx *p)
    {
       printf ("CProgram: %d %d %s\n", p->yyy, p->zzz, p->name);
    }

    main()
    {
       char * key = (char *)malloc(5);
       key[0] = 'A';
       key[1] = 'B';
       key[2] = 'C';
       key[3] = 'D';
       key[4] = '\0';
       struct xxx *t1 = new struct xxx;
       t1->yyy = 20;
       t1->zzz = 30;
       t1->name = key;
       sub1 (t1);
    }

and a DTrace script :
    $cat sample.d
    struct xxx
    {
       int yyy;
       int zzz;
       const char *name;
    };

    pid$target:a.out:*sub1*:entry
    {
       sp = (struct xxx *) copyin (arg0, sizeof (struct xxx));
       printf ("DTrace: %d %d \n", sp->yyy, sp->zzz);
       printf ("DTrace: name=%s\n", stringof(sp->name));
       exit (0);
    }
$CC sample.cpp

$dtrace: script 'sample.d' matched 1 probe
CProgram: 20 30 ABCD
dtrace: pid 2624 has exited
dtrace: error on enabled probe ID 1 (ID 47665: 
pid2624:a.out:__1cEsub16FpnDxxx__v_:entry): invalid address (0x2872800000000) 
in action #4

What is this error ? I get this error when I compile the program in 64 bit as 
well.

$CC -xarch=v9 sample.cpp

$dtrace -s sample.d -c ./a.out
dtrace: script 'sample.d' matched 1 probe
CProgram: 20 30 ABCD
dtrace: pid 2629 has exited
dtrace: error on enabled probe ID 1 (ID 47665: 
pid2629:a.out:__1cEsub16FpnDxxx__v_:entry): invalid address (0x10010a000) in 
action #4


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

Reply via email to