Did you run `make clean` between making the change and running the build?
Files containing PG(track_changes) aren't the only ones you need to change,
every PG element past track_changes is now located at a different memory
offset from the start of the structure. And if you happen to be running
under ZTS, you may even be not allocating enough space for storage which'll
result in overruns.
-Sara
----- Original Message -----
From: "Gwynne" <[EMAIL PROTECTED]>
Newsgroups: php.internals
To: <internals@lists.php.net>
Sent: Wednesday, July 05, 2006 4:41 AM
Subject: Making changes to PG() (php_core_globals)
The subject line gives a pretty good idea what this question is about.
Yes, I'm well aware of the dangers of making core changes, and I'm only
doing it to give myself a better idea what's going on inside :). In any
case, here's the problem...
One of the changes I tried to make is changing the type of the
track_errors setting from zend_bool to long. It seems like a simple
enough change: change the type in php_globals.h, update the INI setting
in main.c, update the actual usage of the var in main.c, update my local
INI file to use an integer value.
But as soon as I did this, my test build started showing leaks from
php_hash_environment() and a crash in php_module_shutdown()-
>php_shutdown_ticks()->zend_llist_destroy(). My only guess as to why
it was happening is that I didn't change a type or expected size
somewhere, but for the life of me I can't figure out where my mistake
was; I haven't seen a harcoded size where sizeof() should be or anything
like that, after poring through main.c, php_variables.c, zend_globals.h,
php_globals.h, and the like.
I've reverted my source, but I'd still like to know: What did I miss?
TSRM was on (--enable-maintainer-zts), as was --enable-debug, if that
helps. I didn't try it without TSRM; if I can't do it thread-safely, then
I'm not doing it right regardless.
-- Gwynne, Daughter of the Code
"This whole world is an asylum for the incurable."
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php