e.g. complicated program:
set I0, 10
set N1, 1.1
set S2, "abc"
(gdb) p I0
$2 = 10
(gdb) p N1
$3 = 1.1000000000000001
(gdb) p *S2
$4 = {bufstart = 0x815ad30, buflen = 15, flags = 336128, bufused = 3, strstart = 0x815ad30 "abc"}
(gdb) p S2
$5 = (struct Parrot_String *) 0x81628a8
(gdb)
The view of strings is actually simplified in the stabs file, e.g. showing strstart as string (which is handy) and omitting some members.
You can set parrot registers too in gdb.
When running inside JIT, the N and I-Registers might still be in processor registers and therefore show old values inside gdb.
What fields would be useful for PMCs?
Have fun,
leo
PS attached dddp (usage: "dddp j" for running j.pbc and starting ddd with symbols)
# run ddd parrot with given file # gdb confirmations should be off echo "b runops_jit r -d -j --gc-debug $1.pbc n n n n add-symbol-file $1.o 0 s " > .ddd
ddd --command .ddd parrot &