[PATCH] D137156: [llvm-debuginfo-analyzer] Fix memory leak reported by sanitizers.
Carlos Alberto Enciso via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 1 09:55:47 PDT 2022
CarlosAlbertoEnciso added a comment.
In D137156#3899106 <https://reviews.llvm.org/D137156#3899106>, @jryans wrote:
> Thanks, this looks reasonable to me! 🙂
>
> Were you able to reproduce the failure locally?
First of all, thanks very much for the review.
Building with sanitizers require extra setup and stages.
It was relatively fast to have a very basic memory tracking (new/delete) to find the places where the memory was allocated and reproduce the failure locally.
Log from @vitalybuka:
==1211325==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 1440 byte(s) in 12 object(s) allocated from:
#0 0x560d26e1e8cd in operator new(unsigned long) /b/sanitizer-x86_64-linux-fast/build/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:95:3
#1 0x560d275ff029 in llvm::logicalview::LVBinaryReader::createInstructions(llvm::logicalview::LVScope*, unsigned long, std::__1::pair<unsigned long, unsigned long> const&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp:424:31
#2 0x560d27603fa6 in llvm::logicalview::LVBinaryReader::createInstructions() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp:498:21
Log from the memory tracking:
ERROR: Unallocated 12 objects from:
1: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
2: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
3: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
4: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
5: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
6: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
7: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
8: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
9: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
10: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
11: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
12: 'X:\diva-root\llvm-project\llvm\lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485
SUMMARY: Allocated 122, Deleted 110
ERROR: Detected memory leaks
UNREACHABLE executed at X:\diva-root\llvm-project\llvm\include\llvm/DebugInfo/LogicalView/Core/LVSupport.h:84!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Exception Code: 0x80000003
#0 0x00007ff6a5fc7d7c HandleAbort X:\diva-root\llvm-project\llvm\lib\Support\Windows\Signals.inc:414:0
#1 0x00007ffd991cbc31 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6bc31)
#2 0x00007ffd991cd889 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6d889)
#3 0x00007ff6a5e7566a llvm::llvm_unreachable_internal(char const *, char const *, unsigned int) X:\diva-root\llvm-project\llvm\lib\Support\ErrorHandling.cpp:218:0
#4 0x00007ff6a559f249 llvm::logicalview::LVAllocations::dump(void) X:\diva-root\llvm-project\llvm\include\llvm\DebugInfo\LogicalView\Core\LVSupport.h:86:0
#5 0x00007ff6a5596e44 llvm::logicalview::LVAllocations::~LVAllocations(void) X:\diva-root\llvm-project\llvm\include\llvm\DebugInfo\LogicalView\Core\LVSupport.h:51:0
#6 0x00007ff6a7e78662 `dynamic atexit destructor for '`public: static class logicalview::LVAllocations::getInstance & __cdecl llvm::logicalview::LVAllocations::getInstance(void)'::`2'::Instance''(void) (e:\projects\diva-root\builds\win\debug\Debug\bin\llvm-debuginfo-analyzer.exe+0x3568662)
#7 0x00007ffd991d4957 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x74957)
#8 0x00007ffd991d4365 (C:\WINDOWS\SYSTEM32\ucrtb
Just as historical note: `diva` was the tool original name.
The `lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp:424:31` is the same line as `lib\DebugInfo\LogicalView\Readers\LVBinaryReader.cpp':485`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137156/new/
https://reviews.llvm.org/D137156
More information about the llvm-commits
mailing list