================ Comment at: lib/asan/asan_debugging.cc:38 @@ +37,3 @@ + uptr var_name_len = vars[i].name_len; + if (vars[i].name_len > name_size - 1) var_name_len = name_size - 1; + memcpy(name, vars[i].name_pos, var_name_len); ---------------- internal_strncpy?
================ Comment at: lib/asan/asan_debugging.cc:121 @@ +120,3 @@ + uptr *region_address, uptr *region_size) { + return AsanLocateAddress(addr, name, name_size, region_address, region_size); +} ---------------- Consider introducing a struct for address description instead of passing quadruple (name, name_size, region_address, region_size) around. It would be much easier to modify it later. You can also add region_kind ("global", "stack" etc.) string there. ================ Comment at: lib/asan/asan_globals.cc:85 @@ -84,2 +84,3 @@ -bool DescribeAddressIfGlobal(uptr addr, uptr size) { +bool DescribeOrGetInfoIfGlobal(uptr addr, uptr size, bool print, + Global *output_global) { ---------------- This function can be static. ================ Comment at: lib/asan/asan_globals.cc:98 @@ +97,3 @@ + if (IsAddressNearGlobal(addr, g)) { + if (output_global) *output_global = g; + return true; ---------------- I believe output_global should always be nonnull in this case. Remove the if() and optionally add a CHECK. ================ Comment at: lib/asan/asan_interface_internal.h:97 @@ +96,3 @@ + + // The following functions extract various information from a report (if a + // report has already been printed out or is currently being generated). ---------------- Don't duplicate the comments here. ================ Comment at: lib/asan/asan_report.cc:253 @@ -241,1 +252,3 @@ + +bool IsAddressNearGlobal(uptr addr, const __asan_global &g) { if (addr <= g.beg - kMinimalDistanceFromAnotherGlobal) return false; ---------------- This clearly belongs to asan_globals.cc ================ Comment at: lib/asan/asan_report.cc:298 @@ -283,1 +297,3 @@ + if (print) Printf(kAddrInShadowReport, addr, area_type); + if (output_type) *output_type = area_type; return true; ---------------- I guess that if print() is false, output_type should be nonnull. ================ Comment at: lib/asan/asan_report.cc:961 @@ +960,3 @@ + report_happened = true; + report_data.description = bug_descr; + report_data.pc = pc; ---------------- Can you use aggregate assignment here? report_data = { ... }; http://reviews.llvm.org/D4527 _______________________________________________ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits