This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: New version of w3m 0.5.2 Crashes - GDB help needed (SOLVED)


nyc4bos@aol.com writes:

> Bob Heckel <bheckel@gmail.com> writes:
>
>> On Wed, Jan 5, 2011 at 16:22, Christopher Faylor wrote:
>>> On Wed, Jan 05, 2011 at 04:16:37PM -0500, nyc4bosaol.com wrote:
>>>>nyc4bosaol.com writes:
>>>>
>>>>Bob created a debug version of w3m for me.
>>>>
>>>>Here's what I see:
>>>>
>>>>The crash occurs when doin a `strncmp' in cygwin1.dll:
>>>>
>>>> ? ? ?4 [main] w3m 3024 exception::handle: Exception: STATUS_ACCESS_VIOLATION
>>>> ? 1564 [main] w3m 3024 open_stackdumpfile: Dumping stack trace to w3m.exe.stack
>>>>dump
>>>>
>>>>Program received signal SIGSEGV, Segmentation fault.
>>>>0x6110daf5 in strncmp () from /usr/bin/cygwin1.dll
>>>>(gdb) bt full
>>>>#0 ?0x6110daf5 in strncmp () from /usr/bin/cygwin1.dll
>>>>No symbol table info available.
>>>>#1 ?0x7c85ada0 in OutputDebugStringA ()
>>>> ? from /cygdrive/c/WINDOWS/system32/kernel32.dll
>>>>No symbol table info available.
>>>>#2 ?0x40010006 in ?? ()
>>>>No symbol table info available.
>>>>#3 ?0x00000000 in ?? ()
>>>>No symbol table info available.
>>>>(gdb)
>>>
>>> Looks to me like you need a debugging version of w3m with symbols.
>>> You need to find out what's being passed to strncmp, possibly by setting a
>>> breakpoint at 0x40110006.
>
> Do you mean 0x40010006 ?
>
>>
>> If I did it right, this one includes the symbols:
>> http://bheckel.sdf.org/cygwin/w3m/tmp/w3mdebug.tar.bz2
>
> What debugging parameters did you pass it?
>
> Did you pass:
>
>     -g
>
> for ALL of the .c files?
>
> For instance, charset.c doesn't seem to be compiled debuggable.
>
> I didn't see a config.log so all of that extra stuff must be
> on your system.
>
> Thanks for your help.

OK, I debugged the new w3m/0.5.2 and discovered what the problem was.

It appears that it crashes if LANG is not defined

When function term.c:check_cygwin_console:239 is called and
the following is evaluated with environment variable LANG undefined:

	if (strncmp(getenv("LANG"), "ja", 2) == 0) {
	    isWinConsole = TERM_CYGWIN_RESERVE_IME;
	}

w3m crashes:

Setting LANG to any value prevents the crash.

Can w3m be changed so that it wont crash in this instance?

The previous version of w3m/0.5.1 doesn't crash if LANG is not set.

BTW, where, when and how does Cygwin set the LANG environment variable?

Thanks.



>
>>
>> Bob


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]