diff options
| author | Damien Doligez <damien.doligez-inria.fr> | 2015-03-04 19:57:51 +0000 |
|---|---|---|
| committer | Damien Doligez <damien.doligez-inria.fr> | 2015-03-04 19:57:51 +0000 |
| commit | 2a0e91960ebdfcbe07662850ea381720914f75aa (patch) | |
| tree | 6902c2b62b33e97dd9be406a92296d95d929e14d /tools | |
| parent | 35c7dac1ad787b1e0cfa828e67d7ec5cdac35a57 (diff) | |
| download | ocaml-2a0e91960ebdfcbe07662850ea381720914f75aa.tar.gz | |
misc fixes to gdb-macros
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15875 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/gdb-macros | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tools/gdb-macros b/tools/gdb-macros index 558db16047..c4903c35e6 100644 --- a/tools/gdb-macros +++ b/tools/gdb-macros @@ -34,7 +34,7 @@ else end define camlcheckheader - if $arg0 >> 10 <= 0 || $arg0 >> 10 > 0x1000000000000 + if $arg0 >> 10 <= 0 || $arg0 >> 10 >= 0x1000000000000 if ($arg0 & $caml_unalloc_mask) == $caml_unalloc_value set $camlcheckheader_result = 2 else @@ -108,7 +108,7 @@ define camlheader printf "Custom " end - printf "%d]", $size + printf "%lu]", $size end end @@ -138,6 +138,9 @@ define camlint else printf "INT %ld", ($arg0 >> 1) end + if ($arg0 & 0xFF) == 0xF9 && ($arg0 >> 10) < 0x1000000000000 + printf " [possible infix header]" + end end define camlblock @@ -168,7 +171,14 @@ define camlblock end end - if $tag != 252 && $tag != 253 && $tag != 254 + if $tag == 249 + set $mybaseaddr = $arg0 - $camlwordsize * $mysize + camlblock $mybaseaddr + # reset $tag, which was clobbered by the recursive call (yuck) + set $tag = 249 + end + + if $tag != 249 && $tag != 252 && $tag != 253 && $tag != 254 set $isvalues = $tag < 251 set $count = 0 while $count < $mysize && $count < 10 |
