summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2015-03-04 19:57:51 +0000
committerDamien Doligez <damien.doligez-inria.fr>2015-03-04 19:57:51 +0000
commit2a0e91960ebdfcbe07662850ea381720914f75aa (patch)
tree6902c2b62b33e97dd9be406a92296d95d929e14d /tools
parent35c7dac1ad787b1e0cfa828e67d7ec5cdac35a57 (diff)
downloadocaml-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-macros16
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