Date: Tue, 17 Jan 2006 23:02:39 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Goran Gajic <ggajic@afrodita.rcub.bg.ac.yu> Cc: freebsd-current@www.freebsd.org, Steve Kargl <sgk@troutmask.apl.washington.edu> Subject: Re: recent changes to libc on amd64 Message-ID: <20060117210239.GA60219@flame.pc> In-Reply-To: <Pine.LNX.4.63.0601172145580.900@afrodita.rcub.bg.ac.yu> References: <Pine.LNX.4.63.0601151319150.30428@afrodita.rcub.bg.ac.yu> <84dead720601170605m406353b5nfbe9e4f2890b59b4@mail.gmail.com> <Pine.LNX.4.63.0601171543570.7222@afrodita.rcub.bg.ac.yu> <20060117153021.GA22577@troutmask.apl.washington.edu> <Pine.LNX.4.63.0601172145580.900@afrodita.rcub.bg.ac.yu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2006-01-17 21:52, Goran Gajic <ggajic@afrodita.rcub.bg.ac.yu> wrote:
> On Tue, 17 Jan 2006, Steve Kargl wrote:
>
> >
> >The problem with Xorg on amd64 is known, and I believe Jason
> >intends to look into the problem when his hardware arrives.
> >The prolem with joe appears to be new. Can you build libncurses
> >and joe with debugging symbol to get more information? Can
> >rebuild joe with electric fence? Also, read the malloc manpage
> >for setting various flags.
> >
> >
>
> Hi,
>
> I have staticly linked joe with ncurses (both build with -g flag) and got
> this:
>
> # gdb joe
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
> are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for
> details.
> This GDB was configured as "amd64-marcel-freebsd"...
> (gdb) run
> Starting program: /usr/ports/editors/joe/work/joe-3.3/joe
> Processing '/usr/local/etc/joe/joerc'...
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000440554 in tgoto (
> string=0x20028f8 <Error reading address 0x20028f8: Bad address>, x=0,
> y=0)
> at
> /usr/src/lib/libncurses/../../contrib/ncurses/ncurses/tinfo/lib_tgoto.c:4
> 6
> 46 if (string == 0 || *string == '\0') {
> (gdb) where
> #0 0x0000000000440554 in tgoto (
> string=0x20028f8 <Error reading address 0x20028f8: Bad address>, x=0, y=0)
> at /usr/src/lib/libncurses/../../contrib/ncurses/ncurses/tinfo/lib_tgoto.c:46
Address 0x20028f8 looks suspiciously similar to cap=0x802000200 from
stack frame #5 here.
> #1 0x000000000041c808 in texec (cap=0x802000200,
> s=0x20028f8 <Error reading address 0x20028f8: Bad address>, l=0, a0=0,
> a1=33564920, a2=0, a3=0) at termcap.c:518
> #2 0x000000000041cc54 in tcompile (cap=0x802000200,
> s=0x20028f8 <Error reading address 0x20028f8: Bad address>, a0=0, a1=0,
> a2=0, a3=0) at termcap.c:708
> #3 0x000000000040ba15 in kbuild (cap=0x802000200, kmap=0x802ff6de0,
> seq=0x7fffffffe706 ".kN", bind=0x8020130e0, err=0x7fffffffe6a4,
> capseq=0x0, seql=0) at kbd.c:246
> #4 0x000000000040bbb0 in kadd (cap=0x1, kmap=0x20028f8, seq=0x0, bind=0x0)
> at kbd.c:297
Here, in frame #4, is the first instance of the address that is clipped
from 0x802000200 to something that can fit in an `int'.
> #5 0x0000000000412f3a in procrc (cap=0x802000200,
> name=0x802002b58 "/usr/local/etc/joe/joerc") at rc.c:1164
It looks like the file that implements procrc() doesn't have a visible
prototype of kadd().
> #6 0x000000000040df06 in main (argc=1, argv=0x7fffffffec58, envv=0x802002b58)
> at main.c:318
> (gdb)
This looks like a missing prototype somewhere in joe's source tree.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060117210239.GA60219>
