Re: command-line debugging broken?
| From: | Rasmus Lerdorf | Date: | Mon, 22 Oct 2001 23:19:13 +0000 |
| Subject: | Re: command-line debugging broken? | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-68746@lists.php.net to get a copy of this message | ||
An update to this. It only happens if an extension is dl()'ed. If it is
loaded via an "extension=" in php.ini it works fine.
-Rasmus
On Mon, 22 Oct 2001, Rasmus Lerdorf wrote:
> The leak notices and other --enable-debug messages seem to be brokwn right
> now.
>
> ie.
>
> stick a stray char *s = emalloc(20); somewhere and try running php
> script.php from the command line. I get a segfault that looks like this:
>
> #0 0x406ab75c in _IO_vfprintf (s=0xbfffeca0, format=0x8186e40 "%s(%d) :
> Freeing 0x%.8lX (%d bytes), script=%s\n",
> ap=0xbfffedd0) at ../sysdeps/i386/i486/bits/string.h:530
> #1 0x406cc615 in _IO_vsnprintf (string=0xbffff010 "", maxlen=512,
> format=0x8186e40 "%s(%d) : Freeing 0x%.8lX (%d bytes), script=%s\n",
> args=0xbfffedcc) at vsnprintf.c:131
> #2 0x406b3afb in __snprintf (s=0xbffff010 "", maxlen=512,
> format=0x8186e40 "%s(%d) : Freeing 0x%.8lX (%d bytes), script=%s\n") at
> snprintf.c:37
> #3 0x0806f0b3 in php_message_handler_for_zend (message=4, data=0x827b560) at main.c:582
> #4 0x08145fab in zend_message_dispatcher (message=4, data=0x827b560) at zend.c:616
> #5 0x08135fd5 in shutdown_memory_manager (silent=0, clean_cache=0) at zend_alloc.c:502
> #6 0x0806f75e in php_request_shutdown (dummy=0x0) at main.c:743
> #7 0x0806e096 in main (argc=2, argv=0xbffff934) at cgi_main.c:775
> #8 0x406706b7 in __libc_start_main (main=0x806d62c <main>, argc=2, ubp_av=0xbffff934,
> init=0x8069ee4 <_init>,
> fini=0x8185db0 <_fini>, rtld_fini=0x4000db64 <_dl_fini>, stack_end=0xbffff92c)
> at ../sysdeps/generic/libc-start.c:129
>
> (gdb) up
> #3 0x0806f0b3 in php_message_handler_for_zend (message=4, data=0x827b560)
> at main.c:582
> 582 snprintf(memory_leak_buf, 512, "%s(%d) :
> Freeing 0x%.8lX (%d bytes), script=%s\n", t->filename, t->lineno, (unsigned
> long)ptr, t->size, SAFE_FILENAME(SG(request_info).path_translated));
> (gdb) p *t
> $2 = {magic = 1930623196, filename = 0x40017cab <Address 0x40017cab out of bounds>,
> lineno = 123, reported = 0,
> orig_filename = 0x0, orig_lineno = 0, pNext = 0x827b4e0, pLast = 0x0, size = 20, persistent =
> 0, cached = 0}
>
> That mem_header looks a bit messed up. I could of course be stepping on
> memory elsewhere. Anybody else seeing this?
>
> -Rasmus
>
>
>