C Problems with Dtrace script

Hi folks!

I'm trying to run this D script:
Code:
#!/usr/sbin/dtrace -qCs

#define JAIL_NONE   0x00
#define  JAIL_CREATE  0x01
#define  JAIL_UPDATE  0x02
#define  JAIL_ATTACH  0x04
#define  JAIL_DYING  0x08

syscall:freebsd:jail_set:entry
{
  /* init */
  self->state = arg2 & JAIL_NONE   ? "none"      :
                arg2 & JAIL_CREATE ? "creating"  :
                arg2 & JAIL_UPDATE ? "updating"  :
                arg2 & JAIL_DYING  ? "dying"     :
                arg2 & JAIL_ATTACH ? "attaching" :
                "unknown";
  printf("%s:%s:%d\n", execname, self->state, arg1);
  self->jiov = (struct iovec *)copyin(arg0, sizeof(struct iovec) * arg1);
  self->niov = arg1;
}

syscall:freebsd:jail_set:entry
/self->niov/
{
  /* print iovec of key */
  printf("\t%s=",
    copyinstr((uintptr_t)(self->jiov)[arg1-self->niov].iov_base)
  );
  self->niov--;
}

syscall:freebsd:jail_set:entry
/self->niov/
{
  /* print iovec of value */
  value = copyinstr((uintptr_t)(self->jiov)[arg1-self->niov].iov_base);
  printf("'%s'\n",
    value == NULL ? "NULL" :
    value == 0 ? "0" :
    value;
  );
  self->niov--;
}

syscall:freebsd:jail_set:return
{
  printf("-> %d\n", arg0);
}

syscall:freebsd:jail_get:entry
{
  /* init */
  self->state = arg2 & JAIL_NONE   ? "none"      :
                arg2 & JAIL_CREATE ? "creating"  :
                arg2 & JAIL_UPDATE ? "updating"  :
                arg2 & JAIL_DYING  ? "dying"     :
                arg2 & JAIL_ATTACH ? "attaching" :
                "unknown";
  printf("%s:%s:%d\n", execname, self->state, arg1);
  self->jiov = (struct iovec *)copyin(arg0, sizeof(struct iovec) * arg1);
  self->niov = arg1;
}

syscall:freebsd:jail_get:entry
/self->niov/
{
  /* print iovec of key */
  printf("\t%s=",
    copyinstr((uintptr_t)(self->jiov)[arg1-self->niov].iov_base)
  );
  self->niov--;
}

syscall:freebsd:jail_get:entry
/self->niov/
{
  /* print iovec of value */
  value = copyinstr((uintptr_t)(self->jiov)[arg1-self->niov].iov_base);
  printf("'%s'\n",
    value == NULL ? "NULL" :
    value == 0 ? "0" :
    value;
  );
  self->niov--;
}

syscall:freebsd:jail_get:return
{
  printf("-> %d\n", arg0);
}

But when I execute is. I get the following error:
Code:
dtrace: failed to compile script ./printiovecs: line 1: syntax error near ";"

WTF? There is even no ";" on line 1?
Can anyone help?

Greetings,
Fips
 
Pay closer attention where the ; is:
Code:
# diff test.d test.d.orig
41c41
<     value
---
>     value;
83c83
<     value
---
>     value;
 
Ah, crap! I was stuck at searching on the first few lines! Thank you so much!
Now I'm getting these errors:
Code:
jls:unknown:6
dtrace: error on enabled probe ID 6 (ID 82866: syscall:freebsd:jail_get:entry): illegal operation in action #1 at DIF offset 40
dtrace: error on enabled probe ID 7 (ID 82866: syscall:freebsd:jail_get:entry): illegal operation in action #1 at DIF offset 40
-> -1

Here is the -S output:
Code:
DIFO 0x488c8392150 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x0
02: 03010201    and  %r1, %r2, %r1
03: 10010000    tst  %r1
04: 12000008    be   8
05: 26000101    sets DT_STRING[1], %r1          ! "none"
06: 0e010001    mov  %r1, %r1
07: 11000029    ba   41
08: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
09: 25000102    setx DT_INTEGER[1], %r2         ! 0x1
10: 03010201    and  %r1, %r2, %r1
11: 10010000    tst  %r1
12: 12000010    be   16
13: 26000601    sets DT_STRING[6], %r1          ! "creating"
14: 0e010001    mov  %r1, %r1
15: 11000029    ba   41
16: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
17: 25000202    setx DT_INTEGER[2], %r2         ! 0x2
18: 03010201    and  %r1, %r2, %r1
19: 10010000    tst  %r1
20: 12000018    be   24
21: 26000f01    sets DT_STRING[15], %r1         ! "updating"
22: 0e010001    mov  %r1, %r1
23: 11000029    ba   41
24: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
25: 25000302    setx DT_INTEGER[3], %r2         ! 0x8
26: 03010201    and  %r1, %r2, %r1
27: 10010000    tst  %r1
28: 12000020    be   32
29: 26001801    sets DT_STRING[24], %r1         ! "dying"
30: 0e010001    mov  %r1, %r1
31: 11000029    ba   41
32: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
33: 25000402    setx DT_INTEGER[4], %r2         ! 0x4
34: 03010201    and  %r1, %r2, %r1
35: 10010000    tst  %r1
36: 12000028    be   40
37: 26001e01    sets DT_STRING[30], %r1         ! "attaching"
38: 0e010001    mov  %r1, %r1
39: 11000029    ba   41
40: 26002801    sets DT_STRING[40], %r1         ! "unknown"
41: 2d050001    stts %r1, DT_VAR(1280)          ! DT_VAR(1280) = "state"
42: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
state            1280 scl tls w    string (unknown) by ref (size 256)
arg2             264  scl glb r    D type (integer) (size 8)

DIFO 0x488c83922a0 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 29011801    ldgs DT_VAR(280), %r1           ! DT_VAR(280) = "execname"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
execname         280  scl glb r    string (unknown) by ref (size 256)

DIFO 0x488c8392310 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 2c050001    ldts DT_VAR(1280), %r1          ! DT_VAR(1280) = "state"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
state            1280 scl tls r    string (unknown) by ref (size 256)

DIFO 0x488c8392380 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010701    ldgs DT_VAR(263), %r1           ! DT_VAR(263) = "arg1"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c83923f0 returns D type (pointer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010601    ldgs DT_VAR(262), %r1           ! DT_VAR(262) = "arg0"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x10
02: 29010703    ldgs DT_VAR(263), %r3           ! DT_VAR(263) = "arg1"
03: 08020302    mul  %r2, %r3, %r2
04: 33000000    flushts
05: 31000001    pushtv DT_TYPE(0), %r1          ! DT_TYPE(0) = D type
06: 31000002    pushtv DT_TYPE(0), %r2          ! DT_TYPE(0) = D type
07: 2f000801    call DIF_SUBR(8), %r1           ! copyin
08: 2d050101    stts %r1, DT_VAR(1281)          ! DT_VAR(1281) = "jiov"
09: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
jiov             1281 scl tls w    D type (pointer) (size 8)
arg0             262  scl glb r    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c8392460 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010701    ldgs DT_VAR(263), %r1           ! DT_VAR(263) = "arg1"
01: 2d050201    stts %r1, DT_VAR(1282)          ! DT_VAR(1282) = "niov"
02: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls w    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c83924d0 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r    D type (integer) (size 8)

DIFO 0x488c8392540 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 2c050101    ldts DT_VAR(1281), %r1          ! DT_VAR(1281) = "jiov"
01: 29010702    ldgs DT_VAR(263), %r2           ! DT_VAR(263) = "arg1"
02: 2c050203    ldts DT_VAR(1282), %r3          ! DT_VAR(1282) = "niov"
03: 06020302    sub  %r2, %r3, %r2
04: 25000003    setx DT_INTEGER[0], %r3         ! 0x10
05: 08020302    mul  %r2, %r3, %r2
06: 07010201    add  %r1, %r2, %r1
07: 22010001    ldx  [%r1], %r1
08: 33000000    flushts
09: 31000001    pushtv DT_TYPE(0), %r1          ! DT_TYPE(0) = D type
10: 2f000901    call DIF_SUBR(9), %r1           ! copyinstr
11: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
jiov             1281 scl tls r    D type (pointer) (size 8)
niov             1282 scl tls r    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c83925b0 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x1
02: 06010202    sub  %r1, %r2, %r2
03: 2d050202    stts %r2, DT_VAR(1282)          ! DT_VAR(1282) = "niov"
04: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r/w  D type (integer) (size 8)

DIFO 0x488c8392620 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r    D type (integer) (size 8)

DIFO 0x488c8392690 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 2c050101    ldts DT_VAR(1281), %r1          ! DT_VAR(1281) = "jiov"
01: 29010702    ldgs DT_VAR(263), %r2           ! DT_VAR(263) = "arg1"
02: 2c050203    ldts DT_VAR(1282), %r3          ! DT_VAR(1282) = "niov"
03: 06020302    sub  %r2, %r3, %r2
04: 25000003    setx DT_INTEGER[0], %r3         ! 0x10
05: 08020302    mul  %r2, %r3, %r2
06: 07010201    add  %r1, %r2, %r1
07: 22010001    ldx  [%r1], %r1
08: 33000000    flushts
09: 31000001    pushtv DT_TYPE(0), %r1          ! DT_TYPE(0) = D type
10: 2f000901    call DIF_SUBR(9), %r1           ! copyinstr
11: 2a050001    stgs %r1, DT_VAR(1280)          ! DT_VAR(1280) = "value"
12: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
jiov             1281 scl tls r    D type (pointer) (size 8)
niov             1282 scl tls r    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)
value            1280 scl glb w    string (unknown) by ref (size 256)

DIFO 0x488c8392700 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 29050001    ldgs DT_VAR(1280), %r1          ! DT_VAR(1280) = "value"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x0
02: 27010200    scmp %r1, %r2
03: 12000006    be   6
04: 0e000001    mov  %r0, %r1
05: 11000007    ba   7
06: 25000101    setx DT_INTEGER[1], %r1         ! 0x1
07: 10010000    tst  %r1
08: 1200000c    be   12
09: 26000101    sets DT_STRING[1], %r1          ! "NULL"
10: 0e010001    mov  %r1, %r1
11: 11000019    ba   25
12: 29050001    ldgs DT_VAR(1280), %r1          ! DT_VAR(1280) = "value"
13: 25000002    setx DT_INTEGER[0], %r2         ! 0x0
14: 27010200    scmp %r1, %r2
15: 12000012    be   18
16: 0e000001    mov  %r0, %r1
17: 11000013    ba   19
18: 25000101    setx DT_INTEGER[1], %r1         ! 0x1
19: 10010000    tst  %r1
20: 12000018    be   24
21: 26000601    sets DT_STRING[6], %r1          ! "0"
22: 0e010001    mov  %r1, %r1
23: 11000019    ba   25
24: 29050001    ldgs DT_VAR(1280), %r1          ! DT_VAR(1280) = "value"
25: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
value            1280 scl glb r    string (unknown) by ref (size 256)

DIFO 0x488c83927e0 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x1
02: 06010202    sub  %r1, %r2, %r2
03: 2d050202    stts %r2, DT_VAR(1282)          ! DT_VAR(1282) = "niov"
04: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r/w  D type (integer) (size 8)

DIFO 0x488c83928c0 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010601    ldgs DT_VAR(262), %r1           ! DT_VAR(262) = "arg0"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
arg0             262  scl glb r    D type (integer) (size 8)

DIFO 0x488c83929a0 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x0
02: 03010201    and  %r1, %r2, %r1
03: 10010000    tst  %r1
04: 12000008    be   8
05: 26000101    sets DT_STRING[1], %r1          ! "none"
06: 0e010001    mov  %r1, %r1
07: 11000029    ba   41
08: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
09: 25000102    setx DT_INTEGER[1], %r2         ! 0x1
10: 03010201    and  %r1, %r2, %r1
11: 10010000    tst  %r1
12: 12000010    be   16
13: 26000601    sets DT_STRING[6], %r1          ! "creating"
14: 0e010001    mov  %r1, %r1
15: 11000029    ba   41
16: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
17: 25000202    setx DT_INTEGER[2], %r2         ! 0x2
18: 03010201    and  %r1, %r2, %r1
19: 10010000    tst  %r1
20: 12000018    be   24
21: 26000f01    sets DT_STRING[15], %r1         ! "updating"
22: 0e010001    mov  %r1, %r1
23: 11000029    ba   41
24: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
25: 25000302    setx DT_INTEGER[3], %r2         ! 0x8
26: 03010201    and  %r1, %r2, %r1
27: 10010000    tst  %r1
28: 12000020    be   32
29: 26001801    sets DT_STRING[24], %r1         ! "dying"
30: 0e010001    mov  %r1, %r1
31: 11000029    ba   41
32: 29010801    ldgs DT_VAR(264), %r1           ! DT_VAR(264) = "arg2"
33: 25000402    setx DT_INTEGER[4], %r2         ! 0x4
34: 03010201    and  %r1, %r2, %r1
35: 10010000    tst  %r1
36: 12000028    be   40
37: 26001e01    sets DT_STRING[30], %r1         ! "attaching"
38: 0e010001    mov  %r1, %r1
39: 11000029    ba   41
40: 26002801    sets DT_STRING[40], %r1         ! "unknown"
41: 2d050001    stts %r1, DT_VAR(1280)          ! DT_VAR(1280) = "state"
42: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
state            1280 scl tls w    string (unknown) by ref (size 256)
arg2             264  scl glb r    D type (integer) (size 8)

DIFO 0x488c8392a10 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 29011801    ldgs DT_VAR(280), %r1           ! DT_VAR(280) = "execname"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
execname         280  scl glb r    string (unknown) by ref (size 256)

DIFO 0x488c8392a80 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 2c050001    ldts DT_VAR(1280), %r1          ! DT_VAR(1280) = "state"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
state            1280 scl tls r    string (unknown) by ref (size 256)

DIFO 0x488c8392af0 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010701    ldgs DT_VAR(263), %r1           ! DT_VAR(263) = "arg1"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c8392b60 returns D type (pointer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010601    ldgs DT_VAR(262), %r1           ! DT_VAR(262) = "arg0"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x10
02: 29010703    ldgs DT_VAR(263), %r3           ! DT_VAR(263) = "arg1"
03: 08020302    mul  %r2, %r3, %r2
04: 33000000    flushts
05: 31000001    pushtv DT_TYPE(0), %r1          ! DT_TYPE(0) = D type
06: 31000002    pushtv DT_TYPE(0), %r2          ! DT_TYPE(0) = D type
07: 2f000801    call DIF_SUBR(8), %r1           ! copyin
08: 2d050101    stts %r1, DT_VAR(1281)          ! DT_VAR(1281) = "jiov"
09: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
jiov             1281 scl tls w    D type (pointer) (size 8)
arg0             262  scl glb r    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c8392bd0 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010701    ldgs DT_VAR(263), %r1           ! DT_VAR(263) = "arg1"
01: 2d050201    stts %r1, DT_VAR(1282)          ! DT_VAR(1282) = "niov"
02: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls w    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c8392c40 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r    D type (integer) (size 8)

DIFO 0x488c8392cb0 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 2c050101    ldts DT_VAR(1281), %r1          ! DT_VAR(1281) = "jiov"
01: 29010702    ldgs DT_VAR(263), %r2           ! DT_VAR(263) = "arg1"
02: 2c050203    ldts DT_VAR(1282), %r3          ! DT_VAR(1282) = "niov"
03: 06020302    sub  %r2, %r3, %r2
04: 25000003    setx DT_INTEGER[0], %r3         ! 0x10
05: 08020302    mul  %r2, %r3, %r2
06: 07010201    add  %r1, %r2, %r1
07: 22010001    ldx  [%r1], %r1
08: 33000000    flushts
09: 31000001    pushtv DT_TYPE(0), %r1          ! DT_TYPE(0) = D type
10: 2f000901    call DIF_SUBR(9), %r1           ! copyinstr
11: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
jiov             1281 scl tls r    D type (pointer) (size 8)
niov             1282 scl tls r    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)

DIFO 0x488c8392d20 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x1
02: 06010202    sub  %r1, %r2, %r2
03: 2d050202    stts %r2, DT_VAR(1282)          ! DT_VAR(1282) = "niov"
04: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r/w  D type (integer) (size 8)

DIFO 0x488c8392d90 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r    D type (integer) (size 8)

DIFO 0x488c8392e00 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 2c050101    ldts DT_VAR(1281), %r1          ! DT_VAR(1281) = "jiov"
01: 29010702    ldgs DT_VAR(263), %r2           ! DT_VAR(263) = "arg1"
02: 2c050203    ldts DT_VAR(1282), %r3          ! DT_VAR(1282) = "niov"
03: 06020302    sub  %r2, %r3, %r2
04: 25000003    setx DT_INTEGER[0], %r3         ! 0x10
05: 08020302    mul  %r2, %r3, %r2
06: 07010201    add  %r1, %r2, %r1
07: 22010001    ldx  [%r1], %r1
08: 33000000    flushts
09: 31000001    pushtv DT_TYPE(0), %r1          ! DT_TYPE(0) = D type
10: 2f000901    call DIF_SUBR(9), %r1           ! copyinstr
11: 2a050001    stgs %r1, DT_VAR(1280)          ! DT_VAR(1280) = "value"
12: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
jiov             1281 scl tls r    D type (pointer) (size 8)
niov             1282 scl tls r    D type (integer) (size 8)
arg1             263  scl glb r    D type (integer) (size 8)
value            1280 scl glb w    string (unknown) by ref (size 256)

DIFO 0x488c8392e70 returns string (unknown) by ref (size 256)
OFF OPCODE      INSTRUCTION
00: 29050001    ldgs DT_VAR(1280), %r1          ! DT_VAR(1280) = "value"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x0
02: 27010200    scmp %r1, %r2
03: 12000006    be   6
04: 0e000001    mov  %r0, %r1
05: 11000007    ba   7
06: 25000101    setx DT_INTEGER[1], %r1         ! 0x1
07: 10010000    tst  %r1
08: 1200000c    be   12
09: 26000101    sets DT_STRING[1], %r1          ! "NULL"
10: 0e010001    mov  %r1, %r1
11: 11000019    ba   25
12: 29050001    ldgs DT_VAR(1280), %r1          ! DT_VAR(1280) = "value"
13: 25000002    setx DT_INTEGER[0], %r2         ! 0x0
14: 27010200    scmp %r1, %r2
15: 12000012    be   18
16: 0e000001    mov  %r0, %r1
17: 11000013    ba   19
18: 25000101    setx DT_INTEGER[1], %r1         ! 0x1
19: 10010000    tst  %r1
20: 12000018    be   24
21: 26000601    sets DT_STRING[6], %r1          ! "0"
22: 0e010001    mov  %r1, %r1
23: 11000019    ba   25
24: 29050001    ldgs DT_VAR(1280), %r1          ! DT_VAR(1280) = "value"
25: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
value            1280 scl glb r    string (unknown) by ref (size 256)

DIFO 0x488c8392f50 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 2c050201    ldts DT_VAR(1282), %r1          ! DT_VAR(1282) = "niov"
01: 25000002    setx DT_INTEGER[0], %r2         ! 0x1
02: 06010202    sub  %r1, %r2, %r2
03: 2d050202    stts %r2, DT_VAR(1282)          ! DT_VAR(1282) = "niov"
04: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
niov             1282 scl tls r/w  D type (integer) (size 8)

DIFO 0x488c8393030 returns D type (integer) (size 8)
OFF OPCODE      INSTRUCTION
00: 29010601    ldgs DT_VAR(262), %r1           ! DT_VAR(262) = "arg0"
01: 23000001    ret  %r1

NAME             ID   KND SCP FLAG TYPE
arg0             262  scl glb r    D type (integer) (size 8)

Offset 40 seems odd to me, since the error is probably rather caused by "copyinst"...?

Any ideas?
 
Back
Top