[Geany] Crash on some php files (opensolaris)
Andras Barna
andras.barna at xxxxx
Wed Apr 23 13:48:36 UTC 2008
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 at 1 (l at 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 at 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 at btinternet.com> wrote:
> On Tue, 22 Apr 2008 20:39:04 +0300
>
> "Andras Barna" <andras.barna at 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 at uvena.de
> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
>
>
--
Andy
http://blog.sartek.net
More information about the Users
mailing list