Remote debug an ARM application crash with a core dump.
-
Is there a guide on how to remote debug a segmentation fault in an application created with QT Creator with a core dump?
In QT Creator, with my Project open, I go to Debug > Start Debugging > Load Core File
Now I download the core file and the executable from the remote device. And in the Load Core File dialog box, I choose my kit, tick "Use Local Core file" and the executable I downloaded and press OK.
However, I get an error saying:
Could not load shared library symbols for 67 libraries, e.g. /usr/lib/libcrypto.so.1.0.0.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?... and also above the Debugger pane...
Disassembler failed. Cannot access memory at address 0xb5d6b974
And in the debugger itself just 2 lines:
1 ??
2 ??What am I missing / doing wrong? I get the same error if the application was built in Debug or Release, or if I don't tick "Use local core file" and choose the core file on the device (though I can't choose the executable on the device)
For info: I get this if I run gdb from command line:
GNU gdb (Linaro_GDB-2016.11) 7.12.0.20161122-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from MyApp...done.
[New LWP 2965]
[New LWP 2984]
[New LWP 2987]
[New LWP 2988]
[New LWP 2989]
[New LWP 2990]
[New LWP 3010]
[New LWP 3014]warning: Could not load shared library symbols for 67 libraries, e.g. /usr/lib/libcrypto.so.1.0.0.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
Core was generated by `/usr/bin/p230/MyApp/MyApp -platform eglfs'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xb5d6b988 in ?? ()
[Current thread is 1 (LWP 2965)]I once managed to get this to display the name of the method wherein it crashed - but no more info than that, (having built in release mode) but I don't know what I did differently that time.
Is it all because of the missing shared libraries? Do I need to download them too and put them in the same dir as the executable or something? They are scattered around the file system of the remote device.