Need Some help writing a module.
| From: | Garland foster | Date: | Fri, 31 May 2002 19:18:20 +0000 |
| Subject: | Need Some help writing a module. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-84632@lists.php.net to get a copy of this message | ||
Hi all,
I'm writing a PHP module for repat, a C-based RDF parser, very similar to expat, in fact it
uses expat
but for RDF statements.
Maybe some of you with a lot of experience in writing modules can help me with my problem
I have a C variable, a pointer with say X and when I pass the pointer to a function it receives not
X but
something else.
This is a dump of a silly gdb session showing the problem (using the binary php)
See how report_start_element receies an rdf_parser and that rdf_parser->user_data is 0x81970c
Then this code is executed:
if( rdf_parser->start_element_handler )
{
( *rdf_parser->start_element_handler )(
rdf_parser->user_data,
name,
attributes );
}
and parser_my_start_element (the function acting as start_element_handler) receives 0x1cd (???!!)
This is the dump
Breakpoint 1, report_start_element (rdf_parser=0x81f9a58, name=0x81fa714 "html",
attributes=0x81f9ce0) at rdfparse.c:1292
1292 if( rdf_parser->start_element_handler )
(gdb) s
1294 ( *rdf_parser->start_element_handler )(
(gdb) p rdf_parser->user_data
$12 = (void *) 0x81f970c
(gdb) s
Breakpoint 2, parser_my_start_element_handler (user_data=0x1cd, name=0x81fa714 "html",
attributes=0x81f9ce0) at repat.c:653
If someone can give me a tip about what may be happening then I'd get back to continue the
module, after this problem it should be
ready next week since everything was on wheels until now.
Thanks for your help!
Garland
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.362 / Virus Database: 199 - Release Date: 5/8/02