yes i stopped in vStringNCatS after applying the patch: (dbx) print matchTagPattern `geany`lregex.c`matchTagPattern = &`geany`lregex.c`matchTagPattern(const vString *const line, const regexPattern *const patbuf, const regmatch_t *const pmatch) at 0x817a57e and: t@1 (l@1) signal SEGV (no mapping at the fault address) in strlen at 0xd018a940 0xd018a940: strlen+0x0030: movl (%eax),%ecx Current function is error 284 fprintf (errout, "%s: %s", getExecutableName (), (dbx) where current thread: t@1 dbx: read of 4 bytes at address 3 failed dbx: attempt to read frame failed -- cannot get return address [1] strlen(0x0), at 0xd018a940 [2] _ndoprnt(0x81a485b, 0x8046e20, 0x81d08e0, 0x0), at 0xd01cbe26 [3] _fprintf(0x81d08e0, 0x81a4859, 0x0, 0x81a484e), at 0xd01cdc9f =>[4] error(selection = 2, format = 0x81a7c70 "%s:%ld: null expansion of name pattern "%s"", ...), line 284 in "ctags.c" [5] matchTagPattern(line = 0x8a5a968, patbuf = 0x8a54d10, pmatch = 0x8046e88), line 464 in "lregex.c" [6] matchRegexPattern(line = 0x8a5a968, patbuf = 0x8a54d10), line 497 in "lregex.c" (dbx)
PS: i'm neither a dbx professional :) (i'm using it because gdb segfaults too when i try it with geany :P) , still need to read the whole stuff here http://docs.sun.com/app/docs/doc/819-5257
On Wed, Apr 23, 2008 at 3:25 PM, Nick Treleaven nick.treleaven@btinternet.com wrote:
On Tue, 22 Apr 2008 20:39:04 +0300
"Andras Barna" andras.barna@gmail.com wrote:
with -g3 and -Wdisabled-optimization
Thanks for the new trace.
Could you try the attached patch - I'm still not sure what the problem is, but it should fix the actual reason of the segfault, and might reveal the cause of the problem.
Maybe there is some code we should backport elsewhere in CTags, but lregex.c and php.c don't have any relevant changes, so I'm not really sure where to look.
One thing to try - can you print *line in the matchTagPattern() frame of the segfault trace?
BTW, I'm not familiar with dbx, but why does the first trace for the segfault end with the matchRegexPattern frame - is it possible to print the frames below that? Is the second trace just for a breakpoint?
Regards, Nick
Geany mailing list Geany@uvena.de http://lists.uvena.de/cgi-bin/mailman/listinfo/geany