diagnostics: dotnet-dump analyzer don't work at Tizen x86 emulator
I am testing dotnet-dump analyzer on Tizen emulator (x86, qemu based) in order to investigate x86 coredumps. Accordinately to diagnostics and clrmd docs, x86 are supported (both x86 and amd64 https://github.com/microsoft/clrmd/blob/master/doc/FAQ.md#does-this-work-with-any-architecture-x86x64 architectures (x64, x86, arm, arm64) https://github.com/dotnet/diagnostics#net-core-diagnostics-repo), but when I try to analyze core dump I see this output:
Loading core dump: /opt/usr/share/crash/dump/dotnet-launcher_7493_20200210194203/dotnet-launcher_7493_20200210194203.coredump ...
Ready to process analysis commands. Type 'help' to list available commands or 'help [command]' to get detailed help on a command.
Type 'quit' or 'exit' to exit the session.
Invalid architecture EM_386
In the same time, I don’t have any issue with same coredump with lldb+SOS plugin:
bash-3.2# lldb /usr/bin/dotnet-launcher -c /opt/usr/share/crash/dump/dotnet-launcher_7493_20200210194203/dotnet-launcher_7493_20200210194203/dotnet-launcher_7493_20200210194203.coredump
(lldb) target create "/usr/bin/dotnet-launcher" --core "/opt/usr/share/crash/dump/dotnet-launcher_7493_20200210194203/dotnet-launcher_7493_20200210194203.coredump"
Core file '/opt/usr/share/crash/dump/dotnet-launcher_7493_20200210194203/dotnet-launcher_7493_20200210194203.coredump' (i386) was loaded.
(lldb) clrstack
OS Thread Id: 0x1d45 (1)
Child SP IP Call Site
BFC0A57C b561cd4e [HelperMethodFrame: bfc0a57c]
BFC0A600 B2BE18B1 MITestExceptionBreakpoint.Test.TestAppException() [/home/viewizard/Desktop/netcoredbg/test-suite/MITestExceptionBreakpoint/Program.cs @ 232]
BFC0AEAC b5360592 [HelperMethodFrame: bfc0aeac]
BFC0AF30 B2BE19AB MITestExceptionBreakpoint.Test.ThrowInner() [/home/viewizard/Desktop/netcoredbg/test-suite/MITestExceptionBreakpoint/Program.cs @ 249]
BFC0AF50 B2BE18F0 MITestExceptionBreakpoint.Test.CatchInner() [/home/viewizard/Desktop/netcoredbg/test-suite/MITestExceptionBreakpoint/Program.cs @ 256]
BFC0AF70 B2BE17E4 MITestExceptionBreakpoint.Test.TestAppException() [/home/viewizard/Desktop/netcoredbg/test-suite/MITestExceptionBreakpoint/Program.cs @ 235]
BFC0AFB0 B35D9AEF MITestExceptionBreakpoint.Program.Main(System.String[]) [/home/viewizard/Desktop/netcoredbg/test-suite/MITestExceptionBreakpoint/Program.cs @ 501]
BFC0B114 b53606c6 [GCFrame: bfc0b114]
BFC0B4F4 b53606c6 [GCFrame: bfc0b4f4]
During fast investigation, I found:
https://github.com/microsoft/clrmd/blob/b477434904d85ead51686087ea7472dd15624ce3/src/Microsoft.Diagnostics.Runtime/src/Linux/ElfCoreFile.cs#L32-L35
Looks like, x86 support don’t implemented in clrmd.
Accordinately to memory consumtion tests on arm32, dotnet-dump need in 2 times less memory during coredump analyze compared to lldb+SOS plugin, that make it good alternative in case of crash investigation on Tizen devices/emulator.
@leculver @mikem8361 @NextTurn could you please share information, what the real x86 support status. Do you have any plans for full x86 dotnet-dump support?
About this issue
- Original URL
- State: open
- Created 4 years ago
- Comments: 28 (28 by maintainers)
@swift-kim FYI specifying
CallingConvention.Winapiis equivalent to omitting theUnmanagedFunctionPointerAttribute. See my PRs last year: dotnet/dotnet-api-docs#3706, dotnet/dotnet-api-docs#3707.@swift-kim I didn’t know that
CallingConvention.Winapihas been updated to use CDECL on Linux x86. (The doc was just updated 20 days ago dotnet/dotnet-api-docs#3967.) It’s definitely better.@NextTurn The command
mount -o remount,rw /will help in that case.