I originally tried to solve this problem a long time ago by changing the gdb package to depend on the selected libc debug packages. That never did get to a state that was accepted for commit.

However, even if it did, I've come to realize that it wouldn't really fix the problem.

Basically, core dumps do not generate valid dumps for multiple threads when the threading debug symbols are not available. This includes automatically generated core dumps when an application segfaults while running (kernel generated dumps).

Two possible solutions for the problem which will ensure core dumps work when enabled is to: 1. not strip the libc packages. Since this would mean more loaded into memory all the time, I can understand why this may not be desirable. 2. Include the debug symbols for either all of libc or just the specific libc debug symbols needed for a valid core dump so that core dumps work. a. Just have eglibc depend on eglibc-dbg and uclibc depend on uclibc-dbg. Easy. For eglibc, this adds @35mb to a system b. Split the required *.so.debug out from the rest of the dbg, and have the -dbg package and base package depend on the new package. I believe the minimal required is libpthread-*.so.debug, which for the eglibc case adds less than 1MB to the image.

Testing would be required to ensure the right subset is selected for 2.b, but when I originally did this just adding that one debug file caused the generated images to become fully readable.

Are either of the above possible solutions likely to get approved? I don't mnd implementing either, but as they effectively affect every image made, I would like to discuss before implementing one of the solutions.

Without this change, a debug dump will have only one viewable thread. It is not usually the crashing thread. With the required debug symbols in place, crash dump debugging (including on a development box with the device SDK installed) appears to function properly.


Any suggestions about what can be done that could be accepted for inclusion into the mainline after completion would be accepted.

Is 1MB worth worrying about? I know some images that are generated are very small, but I don't usually get things smaller than 200MB where 500K is just noise.


Brian A. Lloyd



Brian A. Lloyd
--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to