Я пытаюсь обнаружить утечку памяти на моем главном сервере. net и сделать дамп памяти через gcore. Попробуйте проанализировать его через lldb и sos в Debian 9.
ulimit -c unlimited
sudo gcore -o dump $(pidof dotnet)
sudo lldb-4.0 $(which dotnet) --core ./dump.MY_PID
(lldb) plugin load /usr/share/dotnet/shared/Microsoft.NETCore.App/2.2.1/libsosplugin.so
sos DumpHeap -stat
, поэтому у меня есть большая таблица с mt, count, size и objname
Но все мои классы НЕИЗВЕСТНЫ *
...
00007f754af190b8 650 26000 UNKNOWN
00007f754b339df0 512 32768 UNKNOWN
00007f7549e8d718 6 35692 System.UInt16[]
00007f754c4e9e10 679 38024 UNKNOWN
00007f7549eb3138 482 61696 System.IO.FileStream
00007f754a155468 203 74208 System.Collections.Generic.Dictionary`2+Entry[[System.String, System.Private.CoreLib],[System.Int32, System.Private.CoreLib]][]
00007f754af198f8 695 90088 UNKNOWN
00007f7549e910d0 173 90696 System.Object[]
00007f7549e8a790 1010 98996 System.Int32[]
00007f7549e94ef0 361 417304 System.Char[]
00007f7549e950f0 1826 677178 System.Byte[]
00007f7549ea8a20 12844 1046724 System.String
00000000009628b0 809 2671130 Free
Я думаю, что я должен установить символы. Но ... я копирую его в папку CLR /usr/share/dotnet/shared/Microsoft.NETCore.App/2.2.1/
и пытаюсь использовать команду add-dsym
. Ничего не меняется ... Как мне получить нормальный дамп с полным стеком?