Summary: | php ebuilds ignore USE="debug" | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Joe H <madcoder> |
Component: | Eclasses | Assignee: | PHP Bugs <php-bugs> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | madcoder |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Joe H
2006-09-13 18:09:54 UTC
I appreciate the link. I was under the impression that the debug USE flag would set the appropriate flags and configure options. That said, I tried re-emerging PHP with the following: FEATURES="splitdebug" ACCEPT_KEYWORDS=~amd64 USE="debug" CFLAGS="-mtune=athlon64 -msse2 -O1 -ggdb" emerge -v php And I still get a backtrace with nothing but addresses. I'll keep trying different combinations, but at this point even with that link you gave me, I'm still at the same place I started... You need nostrip in FEATURES unless you are using debugedit for your debugging w/ the splitdebug stuff. And, recompiling PHP itself won't do much good, you should recompile all its dependencies as well to get some useful results. Okay (the difference between "splitdebug" and "nostrip" needs to be clarified better on that link -- it makes no mention to "debugedit", and says that the result of using "splitdebug" will allow gdb to find the debug information automatically... which is apparently incorrect?) I'm trying it with nostrip now. Thanks again. Okay, after re-emerging PHP and OpenLDAP with: FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict nostrip" ACCEPT_KEYWORDS=~amd64 USE="debug" CFLAGS="-mtune=athlon64 -O1 -ggdb" CXXFLAGS="-mtune=athlon64 -O1 -ggdb" emerge -vD php openldap I still get a useless backtrace... What am I missing now? I understand that it would be best to recompile all of PHP's dependencies, but the only debugging information I'm interested in is PHP's and ldap's (the crash happens on ldap_get_entries). And even after the way i've just merged PHP and OpenLDAP, at least PART of the backtrace should give some useful information, right? Instead I *still* only get this: --------- # gdb php (gdb) set args -e test.php (gdb) run Starting program: /usr/bin/php -e test.php done searching Program received signal SIGSEGV, Segmentation fault. 0x00002aaaac8ccd1d in ?? () (gdb) thread apply bt all (gdb) bt #0 0x00002aaaac8ccd1d in ?? () #1 0xa3a75fcdd6da6987 in ?? () #2 0x0000000000000410 in ?? () #3 0x0000555555ee7c90 in ?? () #4 0x00005555556a25f0 in ?? () #5 0x0000000000000024 in ?? () #6 0x00005555558085c2 in ?? () #7 0x0000555555ba3488 in ?? () #8 0x00005555558183c9 in ?? () #9 0xa3a75fcdd6da6987 in ?? () #10 0x0000000000000000 in ?? () ----------- What am I missing here? And why does it have to be so difficult just to get a simple backtrace? Please, don't use bugzilla as a support forum, it's really not proper place to ask questions how to do something. Well, I don't consider this a problem of simply not doing something right. I've done what the backtraces.xml document says is required to create a useful backtrace, and still no backtrace is generated, therefore I consider it a BUG (which is what BUGzilla is for, right?). FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms splitdebug strict" ACCEPT_KEYWORDS="~amd64" USE="debug" CFLAGS="-mtune=athlon64 -O2 -pipe -ggdb" CXXFLAGS="-mtune=athlon64 -O2 -pipe -ggdb" emerge -vD openldap php That's what I do on my debugging system and it definitely _does_ work, the "debug" USE flag in PHP does enable it's debugging features, there's nothing broken here, closing this... Best regards, CHTEKK. |