QtWS15- Among ELFs and DWARFs, Volker Krause, KDAB
Qt World Summit 2015, OCTOBER 5-7, BERLIN, GERMANY
Among ELFs and DWARFs:
When debugging a problem or optimizing performance we tend to look at the source code of our application and its runtime behavior. There is however a third form of our program we can look at that is far less often used for this purpose, the compiled binary. While this obviously isn't the right form to work with in many scenarios, it does provide us with valuable information when dealing with start-up performance, memory consumption, plug-in loading issues or bizarre runtime behavior for example.
In this talk we will look at various useful information we can find in compiled libraries or executables, with a special focus on Qt related use-cases. Exploring a binary for example shows implications of Qt's various ways of dealing with string literals, how to debug Qt plug-in loading issues, or why member function pointer signal/slot connections can fail in surprising ways. We will also cover some of the tools available for inspecting binary files, relevant linker flags and their impact, and ways to look into the very early, pre-main phases of application runtime.
As the title suggests examples will primarily focus on the ELF format used on Linux, Android and other UNIX systems as well as QNX, but due to their common ancestry you will find most concepts and ideas also applying to PE and Mach-O.
Video by Qt Company and greenwoodworx, www.greenwoodworx.com