I have a AT91SAM9G25 system that has been idle for a couple years (running morty, yocto version 2.2.1) and I am working on updating to the latest Yocto production branch. Before I get there, I'm trying to confirm the old setup and I'm having problems with remote debugging. I know there have been changes since yocto version 2.7 for debugging support, so I want to make sure I can get the old setup to work first prior to changing everything. I'm looking for assistance in tracking down my debug issues.
My stable production image is based off of core-image-minimal, with a few additional packages for our proprietary applications (proprietary applications are written in C). I also have a development image, based off of our production image, with the following additions:
IMAGE_FEATURES += "package-management dev-pkgs eclipse-debug allow-empty-password empty-root-password"
IMAGE_INSTALL += " \
#same additional packages as production image \
#"-dbg" version of proprietary applications \
# Strip python from the image to reduce the image size
PACKAGE_EXCLUDE = "python"
I have the Eclipse Yocto plugin installed and it is setup to use the SDK that I have built based on the development image. I've confirmed that I can start a debug session on one of our proprietary applications. I can set breakpoints and run the debugger. However, the debugger always stops at the first call to uuid_compare with a SIGSEGV. The last line in the call stack states "<symbol is not available> 0x00000000". From my understanding, the stack pointer is getting set to NULL when uuid_compare is getting called. If I stop the debugger and just run the application on the hardware, the application runs without errors. I have confirmed with syslog messages that I do not have the same NULL stack pointer issue when I run the application outside of the debugger.
Any suggestions on where to start looking? I don't see any obvious possible causes and I don't know where to start looking for the problem.