Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

dtrace: fix generation of v8 constants on freebsd

Every constant is certainly 4 bytes now, but freebsd's objdump utility
prints out odd byte sequences (5-bytes, 6-bytes and even 9-bytes long)
for v8's data section. We can safely ignore all upper bytes, because all
constants that we're using are just `int`s. Since on all supported
platforms `int` is 32bit long (and anyway v8's constants are 32bit too),
we ignore all higher bits if they were read.
  • Loading branch information...
commit 3d67f895521cf905922d20af9b03e5c73c363868 1 parent 2dd3738
@indutny indutny authored
Showing with 5 additions and 5 deletions.
  1. +5 −5 tools/genv8constants.py
View
10 tools/genv8constants.py
@@ -32,7 +32,7 @@
sys.exit()
-pattern = re.compile('(00000000|0000000000000000) <(.*)>:');
+pattern = re.compile('([0-9a-fA-F]{8}|[0-9a-fA-F]{16}) <(.*)>:');
v8dbg = re.compile('^v8dbg.*$')
numpattern = re.compile('^[0-9a-fA-F]{2} $');
octets = 4
@@ -63,10 +63,12 @@ def out_reset():
def out_define():
global curr_sym, curr_val, curr_octet, outfile, octets
if curr_sym != None:
+ wrapped_val = curr_val & 0xffffffff;
if curr_val & 0x80000000 != 0:
- outfile.write("#define %s -0x%x\n" % (curr_sym.upper(), 0x100000000 - curr_val));
+ wrapped_val = 0x100000000 - wrapped_val;
+ outfile.write("#define %s -0x%x\n" % (curr_sym.upper(), wrapped_val));
else:
- outfile.write("#define %s 0x%x\n" % (curr_sym.upper(), curr_val));
+ outfile.write("#define %s 0x%x\n" % (curr_sym.upper(), wrapped_val));
out_reset();
for line in pipe:
@@ -95,8 +97,6 @@ def out_define():
if match == None:
continue;
- octets = len(match.group(1)) / 2;
-
# Print previous symbol
out_define();
Please sign in to comment.
Something went wrong with that request. Please try again.