Professional Documents
Culture Documents
06-02 - Debugger and Profiler For Tizen
06-02 - Debugger and Profiler For Tizen
Igor Kulaychuk
• Leading Software Engineer at Samsung R&D Institute Russia
• Part of Tizen .NET team
2
• Responsible for development of Debugger for Tizen .NET
Experience:
• Development of testing and debugging tools for Android/Tizen
• C/C++/Linux/ptrace
Outline
Debugger / Profiler
– overview
– demo
Application Development
Visual App
Studio .NET Core 5
• Debugging scenario: 6
Debugger demo
DEMO
Profiler
Visual App
Studio .NET Core 8
• Profiling scenario: 9
Profiler demo
DEMO
11
Conclusion
Build, debug and profile your applications
using .NET with Visual Studio
• Download at: 12
https://developer.tizen.org/
• Contact me:
i.kulaychuk@samsung.com
https://github.com/ayuckhulk
13
Thank you!
14
Implementation details
Implementation details
Modify
– Types
.NET Core modifications - GDBJIT
• On method compilation
– Generate ELF in memory
– Trigger __jit_debug_register_code function
– debugger consumes generated ELF from 17
__jit_debug_descriptor variable
LLDB – Why?
• License
• Relatively easy to add a new language
• Supports different architectures
18
• Has GDB/MI implementation
• .NET Core has a plugin for inspecting runtime internals
LLDB - Stepping
• ThreadPlan
try
step-in {
internal void
SomeMethod()
SomeMethod();
}
breakpoint {
catch
(Exception
e)
DoSomething();
19
{
}
ShowError(e);
}
• Synthetics
– Hide internal class variables (like _count
for arrays)
– Show inherited fields like CLRDBG
21
Thank you!