Bug 448003 Z/mZ values are off by 100 on OS X. r=ted
authorPhilippe M. Chiasson <gozer@mozillamessaging.com>
Mon, 11 Aug 2008 15:16:59 +0100
changeset 16554 4312421f534bcf3219a42efae4d685bee34fe8f6
parent 16553 c08c6691cd2a7ac43a0e271e03c513bf817f0e40
child 16555 ea563fdea8225b59c5c617ccd1d4d76c7691a969
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersted
bugs448003
milestone1.9.1a2pre
Bug 448003 Z/mZ values are off by 100 on OS X. r=ted
tools/codesighs/nm_wrap_osx.pl
--- a/tools/codesighs/nm_wrap_osx.pl
+++ b/tools/codesighs/nm_wrap_osx.pl
@@ -55,17 +55,25 @@ while (<NM_OUTPUT>)
   chomp($line);
   
   if ($line =~ /^([^:]+):\s*([0-9a-f]{8}) (\w) (.+)$/)
   {
     my($module) = $1;
     my($addr)   = $2;
     my($kind)   = $3;
     my($symbol) = $4;
-  
+
+    #Skip absolute addresses, there should be only a few
+    if ('A' eq $kind) {
+        if ('trampoline_size' ne $symbol) {
+            warn "Encountered unknown absolutely addressed symbol '$symbol' in $module";
+        }
+        next;
+    }
+
     # we expect the input to have been piped through c++filt to
     # demangle symbols. For some reason, it doesn't always demangle
     # all of them, so push still-mangled symbols back through c++filt again.
     if ($symbol =~ /^(_[_Z].+)/)
     {
       # warn "Trying again to unmangle $1\n";
       $symbol = `c++filt '$1'`;
       chomp($symbol);