[PATCH] D12153: Support inline functions symbolization in Addr2Line symbolizer.

Alexey Samsonov via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 8 12:08:47 PDT 2015


samsonov added a comment.

I still don't like the suggested approach. Having `TrimOutputBuffer` in the parent class is confusing - it's unclear when one needs to use it, and it's added for one specific implementation detail of addr2line. To make that more generic, you can make `ReadFromSymbolizer` virtual, and make `Addr2LineProcess::ReadFromSymbolizer` just call the implementation of the base class, and afterwards adjust it (search for output_terminator_ and put a terminating '\0').


================
Comment at: lib/asan/scripts/asan_symbolize.py:171-172
@@ -160,6 +170,4 @@
+        lines.append((function_name, file_name));
     except Exception:
-      function_name = ''
-      file_name = ''
-    file_name = fix_filename(file_name)
-    return ['%s in %s %s' % (addr, function_name, file_name)]
-
+      lines.append(('??', '??:?'))
+    return ['%s in %s %s' % (addr, function, fix_filename(file)) for (function, file) in lines]
----------------
ygribov wrote:
> Or rather '??:0'?
Please address

================
Comment at: lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc:277
@@ -257,2 +276,3 @@
     char buffer_[kBufferSize];
-    internal_snprintf(buffer_, kBufferSize, "0x%zx\n", module_offset);
+    internal_snprintf(buffer_, kBufferSize, "0x%zx\n0x%zx\n",
+                      module_offset, dummy_address_);
----------------
While you're here, rename it to `buffer`, as it's a local variable.


http://reviews.llvm.org/D12153





More information about the llvm-commits mailing list