gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Gcl-devel] Re: possible GCL/Windows compiler bug


From: Mike Thomas
Subject: RE: [Gcl-devel] Re: possible GCL/Windows compiler bug
Date: Mon, 18 Oct 2004 18:10:27 +1000

Hi Camm/Matt.

I'm sorry for remaining silent on this but I'm almost completely lost and
remain so after spending half an hour on the problem this afternoon.  I hope
to spend more time on it tomorrow afternoon - my home computer is dead at
the moment and likely to remain that way for several days.  On Wednesday I
will probably be away.

I was unable to emulate the bug with ACL 2.8 and GCL 2.6.5 (configured for
debugging and built with gcc 3.4.2 and all latest binutils and runtime
libraries etc - slight mods also to build and run with that version of gcc)
last week.  If there is somewhere from which I could pick up the ACL 2.9
source I'll see if it makes a difference.

One suggestion to help Camm unravel the problem Matt might be to send him
the file "unixport/_rsym" which contains a list of symbols and addresses in
GCL produced during your GCL build.

Cheers

Mike Thomas.


| -----Original Message-----
| From: address@hidden
| [mailto:address@hidden
| Behalf Of Camm Maguire
| Sent: Saturday, 16 October 2004 2:29 AM
| To: Matt Kaufmann
| Cc: address@hidden; address@hidden
| Subject: Re: [Gcl-devel] Re: possible GCL/Windows compiler bug
|
|
| Greetings, and thanks again as always!
|
| OK, here is the executive summary as best as I can currently tell:
|
| 1) The call address at 0x102dcbbc is not subsequently trashed, but is
|    set to its final value (at the segfault):
|
|         0xf01502e9 (little endian, relative offset)+0x102dcbbb = 0x42cea4
|
|    at the initial load of gazonk520.o
|
| 2) Subsequent reload of gazonk520.o gives the same address:
|
|         0xeed11f69 (little endian, relative offset
| +0x1171ae20+284-1 = 0x42cea4
|
|    This should be the address of Lreverse or reverse in your image,
|    which should be checkable in gdb by p/x reverse and p/x Lreverse.
|
| 3) The fault must therefore be at the previous instruction, which was
|    rounded up to the nearest word when reported by gdb.  Here is the
|    relevant portion of the dump:
|
|  114: ff 35 14 00 00 00       pushl  0x14
|  11a: e8 00 00 00 00          call   11f <_LnkTLI5+0x1f>
|
|    The word before 0x11c straddles the two instructions.
|
| 4) The code corresponding to the pushl for both loads looks correct at
|    first glance.
|
|         0x102dcc54(little endian, absolute address)-0x102dcaa0=0x1b4
|         0x1171afd4(little endian, absolute address)-0x1171ae20=0x1b4
|
|    which lies beyond the code segment (ending at 0x19f) and is either
|    in the .data or .bss section of the gazonk520.o file.  You can see
|    which with objdump -h gazonk520.o at the shell.
|
| 5) The only ways I can envision a segfault, therefore, are the
|    following:
|
|         a) you are out of stack space.  'i reg esp' and 'p/x cs_org'
|         in gdb at the location of the fault should show this.
|
|         Is is also possible here that you have simply exceeded Mike
|         Thomas' stack limit emulation, and that the NULL_OR_ON_C_STACK
|         macro therefore failed in some gc call or the like.  Here is
|         the relevant section for mingw from main.c:
|
|         {
|           unsigned int dummy;
|
|           _stackbottom = (unsigned int ) &dummy;
|           _stacktop    = _stackbottom - 0x10000; // ???
|
|         }
|
|         You might also want to do 'p/x _stackbottom' and 'p/x
|         _stacktop' at the fault location when you do 'i reg esp'.
|
|         b) The address 0x102dcc54 is not readable, either because it
|         has not been loaded, or mprotected somehow.  'p/x *(int
|         *)0x102dcc54' at the location of the fault should let you
|         know.  'p/x *(int *)0x1171afd4' after the .o has been reloaded
|         should let you know what the right value should be.
|
|    Both of these scenarios are quite unlikely given the sequences you
|    report, but so far these are the only possibilities that come to
|    mind.  Perhaps our windows expert Mike Thomas might know more.  To
|    my knowledge, signals, including SIGSEGV, are emulated in some way
|    on mingw.  Could there be another cause, Mike?
|
| 6) It is still possible, of course that something is trashing the
|    .data or .bss section of the code -- this however should not result
|    in a segfault when merely loading said supposed corrupted value
|    onto the stack.  So in short, while we cannot definitely pinpoint
|    this as yet, my hunch is that acl2 is not implicated, and you
|    should go ahead with your release.
|
| Take care,
|
| Matt Kaufmann <address@hidden> writes:
|
| > Please see comments below.
| >
| > > Cc: address@hidden, address@hidden
| > > From: Camm Maguire <address@hidden>
| > > Date: 14 Oct 2004 17:09:50 -0400
| > > User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
| > > Content-Type: text/plain; charset=us-ascii
| > > X-SpamAssassin-Status: No, hits=-2.6 required=5.0
| > > X-UTCS-Spam-Status: No, hits=-332 required=180
| >
| > > Greetings, and thanks again for the feedback!
| >
| > > Matt Kaufmann <address@hidden> writes:
| >
| > > > Hi, Camm --
| > > >
| > > > OK, I've tried to carry out your additional instructions,
| and had limited
| > > > success.  Please see below.
| > > >
| > > >    Cc: address@hidden, address@hidden
| > > >    From: Camm Maguire <address@hidden>
| > > >    Date: 14 Oct 2004 10:10:38 -0400
| > > >    User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
| > > >    Content-Type: text/plain; charset=us-ascii
| > > >    X-SpamAssassin-Status: No, hits=-2.6 required=5.0
| > > >    X-UTCS-Spam-Status: No, hits=-342 required=180
| > > >
| > > >    Greetings, and thanks Matt for the very useful debugging
| info.  We
| > > >    should be close now.
| > > >
| > > >    I can correlate your assembler outputs just fine.
| Unfortunately, gdb
| > > >    truncated the bit of the output we need to see what is going on:
| > > >
| > > >    Program received signal SIGSEGV, Segmentation fault.
| > > >    0x102dcbbc in ?? ()
| > > >    (gdb) p/x *(char *)address@hidden
| > > >    $1 = {0x55, 0x89, 0xe5, 0x57, 0x56, 0x53, 0x83, 0xec,
| 0xc, 0x8b, 0x35, 0x0,
| > > >      0x68, 0x5a, 0x0, 0x8d, 0x5e, 0xc, 0x3b, 0x1d, 0x50,
| 0x6d, 0x5a, 0x0, 0x8b,
| > > >      0x7d, 0xc, 0x89, 0x1d, 0x0, 0x68, 0x5a, 0x0, 0xf,
| 0x83, 0xcd, 0x0, 0x0, 0x0,
| > > >      0x8b, 0x15, 0x40, 0xcc, 0x2d, 0x10, 0x81, 0x7a, 0x4,
| 0x50, 0x2, 0x54, 0x0,
| > > >      0xf, 0x84, 0x8e, 0x0, 0x0, 0x0, 0x68, 0x50, 0x2, 0x54,
| 0x0, 0x68, 0x50, 0x2,
| > > >      0x54, 0x0, 0x57, 0xff, 0x75, 0x8, 0xff, 0x15, 0x6c,
| 0xcc, 0x2d, 0x10, 0x89,
| > > >      0x4, 0x24, 0x89, 0xc3, 0x8b, 0x3d, 0x84, 0x5, 0x63,
| 0x0, 0xff, 0x15, 0x68,
| > > >      0xcc, 0x2d, 0x10, 0x83, 0xc4, 0x10, 0x3d, 0x50, 0x2,
| 0x54, 0x0, 0xc7, 0x45,
| > > >      0xf0, 0x90, 0x6b, 0x5a, 0x0, 0x74, 0x38, 0x83, 0xec,
| 0xc, 0x57, 0xff, 0x15,
| > > >      0x64, 0xcc, 0x2d, 0x10, 0xff, 0x75, 0x10, 0x50, 0xff,
| 0x35, 0x48, 0xcc,
| > > >      0x2d, 0x10, 0x6a, 0x3, 0xe8, 0x19, 0x92, 0x15, 0xf0,
| 0x83, 0xc4, 0x1c, 0x50,
| > > >      0xff, 0x75, 0xf0, 0x6a, 0x2, 0xe8, 0x7, 0x91, 0x15,
| 0xf0, 0x89, 0x35, 0x0,
| > > >      0x68, 0x5a, 0x0, 0x8d, 0x65, 0xf4, 0x5b, 0x5e, 0x5f,
| 0xc9, 0xc3, 0x90, 0x83,
| > > >      0xec, 0xc, 0x53, 0xff, 0x15, 0x64, 0xcc, 0x2d, 0x10,
| 0x5a, 0x59, 0x50, 0xff,
| > > >      0x35, 0x44, 0xcc, 0x2d, 0x10, 0xe8, 0x70, 0x7b, 0x12,
| 0xf0, 0x89, 0x45,
| > > >      0xf0, 0x83, 0xc4, 0x10, 0xeb, 0xa8...}
| > > >
| > > >    The ... at the end hides the location of the possible corruption.
| > > >    0x102dcbbc-0x102dcaa0=0x11c=284, so 'p/x *((char
| *)0x102dcbbc-16)@32'
| > > >    here should do the trick.
| > > >
| > > > Here is a log.  I think it gives you ask for above.
| > > >
| > > > gdb ./custom-gcl-saved_acl2.gcl.exe
| > > > GNU gdb 5.2.1
| > > > Copyright 2002 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 "i686-pc-mingw32"...
| > > > (gdb) r
| > > > Starting program: C:\matt\acl2\v2-9/./custom-gcl-saved_acl2.gcl.exe
| > > >
| > > > Program received signal SIGSEGV, Segmentation fault.
| > > > 0x102dcbbc in ?? ()
| > > > (gdb) p/x *(char *)address@hidden
| > > > $1 = {0x55, 0x89, 0xe5, 0x57, 0x56, 0x53, 0x83, 0xec, 0xc,
| 0x8b, 0x35, 0x0,
| > > >   0x68, 0x5a, 0x0, 0x8d, 0x5e, 0xc, 0x3b, 0x1d, 0x50, 0x6d,
| 0x5a, 0x0, 0x8b,
| > > >   0x7d, 0xc, 0x89, 0x1d, 0x0, 0x68, 0x5a, 0x0, 0xf, 0x83,
| 0xcd, 0x0, 0x0, 0x0,
| > > >   0x8b, 0x15, 0x40, 0xcc, 0x2d, 0x10, 0x81, 0x7a, 0x4,
| 0x50, 0x2, 0x54, 0x0,
| > > >   0xf, 0x84, 0x8e, 0x0, 0x0, 0x0, 0x68, 0x50, 0x2, 0x54,
| 0x0, 0x68, 0x50, 0x2,
| > > >   0x54, 0x0, 0x57, 0xff, 0x75, 0x8, 0xff, 0x15, 0x6c, 0xcc,
| 0x2d, 0x10, 0x89,
| > > >   0x4, 0x24, 0x89, 0xc3, 0x8b, 0x3d, 0x84, 0x5, 0x63, 0x0,
| 0xff, 0x15, 0x68,
| > > >   0xcc, 0x2d, 0x10, 0x83, 0xc4, 0x10, 0x3d, 0x50, 0x2,
| 0x54, 0x0, 0xc7, 0x45,
| > > >   0xf0, 0x90, 0x6b, 0x5a, 0x0, 0x74, 0x38, 0x83, 0xec, 0xc,
| 0x57, 0xff, 0x15,
| > > >   0x64, 0xcc, 0x2d, 0x10, 0xff, 0x75, 0x10, 0x50, 0xff,
| 0x35, 0x48, 0xcc,
| > > >   0x2d, 0x10, 0x6a, 0x3, 0xe8, 0x19, 0x92, 0x15, 0xf0,
| 0x83, 0xc4, 0x1c, 0x50,
| > > >   0xff, 0x75, 0xf0, 0x6a, 0x2, 0xe8, 0x7, 0x91, 0x15, 0xf0,
| 0x89, 0x35, 0x0,
| > > >   0x68, 0x5a, 0x0, 0x8d, 0x65, 0xf4, 0x5b, 0x5e, 0x5f,
| 0xc9, 0xc3, 0x90, 0x83,
| > > >   0xec, 0xc, 0x53, 0xff, 0x15, 0x64, 0xcc, 0x2d, 0x10,
| 0x5a, 0x59, 0x50, 0xff,
| > > >   0x35, 0x44, 0xcc, 0x2d, 0x10, 0xe8, 0x70, 0x7b, 0x12,
| 0xf0, 0x89, 0x45,
| > > >   0xf0, 0x83, 0xc4, 0x10, 0xeb, 0xa8...}
| > > > (gdb) p/x *((char *)0x102dcbbc-16)@32
| > > > $2 = {0x8, 0x6a, 0x1, 0x68, 0x64, 0xcc, 0x2d, 0x10, 0xff,
| 0x35, 0x54, 0xcc,
| > > >   0x2d, 0x10, 0xe8, 0xe9, 0x2, 0x15, 0xf0, 0xc9, 0xc3,
| 0x8d, 0x76, 0x0, 0x55,
| > > >   0x89, 0xe5, 0x8d, 0x55, 0xc, 0x83, 0xec}
| >
| > > Great, so this does look like a bogus address.
| >
| > > > (gdb) c
| > > > Continuing.
| > > >
| > > > Program received signal SIGSEGV, Segmentation fault.
| > > > 0x102dcbbc in ?? ()
| > > > (gdb)
| > > >
| > > >    After printing this out, try the following:
| > > >    (gdb) c
| > > >    >>:q
| > > >    >(load "gazonk520.o")
| > > >    >l
| > > >    (gdb) 'p/x *((char *)<new_start_address_output_above>+284-16)@32'
| > > >
| > > > Unfortunately, all that "c" did above was throw me back
| into gdb.  I couldn't
| > > > submit ":q" to the running ACL2:
| > > >
| >
| > > So please rerun from gdb ('r'), and load the .o before trigerring the
| > > error sequence, which as your previous email indicated, should make
| > > the error go away.  Find the start address of the .o, Control-C l at
| > > the lisp prompt to return to gdb, and print out the correct code with
| > > 'p/x *((char *)<new_start_address_output_above>+284-16)@32'.
| >
| > Just below are the  gdb log and corresponding ACL2 for the
| above.  After these,
| > search for "OK, I did the experiment" to find my next comment quickly.
| >
| >
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| ++++++++++++++
| >
| > gdb ./custom-gcl-saved_acl2.gcl.exe
| > GNU gdb 5.2.1
| > Copyright 2002 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 "i686-pc-mingw32"...
| > (gdb) r
| > Starting program: C:\matt\acl2\v2-9/./custom-gcl-saved_acl2.gcl.exe
| >
| > Program received signal SIGINT, Interrupt.
| > [Switching to thread 1864.0x2e0]
| > 0x77ec8ef8 in _libwsock32_a_iname ()
| > (gdb) p/x *((char *)0x1171ae20+284-16)@32
| > $1 = {0x8, 0x6a, 0x1, 0x68, 0xe4, 0xaf, 0x71, 0x11, 0xff, 0x35,
| 0xd4, 0xaf,
| >   0x71, 0x11, 0xe8, 0x69, 0x1f, 0xd1, 0xee, 0xc9, 0xc3, 0x8d,
| 0x76, 0x0, 0x55,
| >   0x89, 0xe5, 0x8d, 0x55, 0xc, 0x83, 0xec}
| > (gdb)
| >
| >
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| ++++++++++++++
| >
| > GCL (GNU Common Lisp)  2.6.5 CLtL1    Aug 23 2004 14:56:58
| > Source License: LGPL(gcl,gmp), GPL(unexec,bfd)
| > Binary License:  GPL due to GPL'ed components: (UNEXEC)
| > Modifications of this banner must retain notice of a compatible license
| > Dedicated to the memory of W. Schelter
| >
| > Use (help) to get some basic information on how to use GCL.
| > Loading init.lsp
| > Finished loading init.lsp
| >
| >  ACL2 Version 2.9 built October 13, 2004  18:35:51.
| >  Copyright (C) 2004  University of Texas at Austin
| >  ACL2 comes with ABSOLUTELY NO WARRANTY.  This is free software and you
| >  are welcome to redistribute it under certain conditions.  For details,
| >  see the GNU General Public License.
| >
| >  Initialized with (INITIALIZE-ACL2 'INCLUDE-BOOK *ACL2-PASS-2-FILES*
| >                       NIL).
| >  See the documentation topic note-2-9 for recent changes.
| >
| >  NOTE!!  Proof trees are disabled in ACL2.  To enable them in emacs,
| >  look under the ACL2 source directory in interface/emacs/README.doc;
| >  and, to turn on proof trees, execute :START-PROOF-TREE in the ACL2
| >  command loop.   Look in the ACL2 documentation under PROOF-TREE.
| >
| > ACL2 Version 2.9.  Level 1.  Cbd "C:/matt/acl2/v2-9/".
| > Type :help for help.
| > Type (good-bye) to quit completely out of ACL2.
| >
| > ACL2 !>:q
| >
| > Exiting the ACL2 read-eval-print loop.  To re-enter, execute (LP).
| > ACL2>(load "gazonk520.o")
| >
| > Loading gazonk520.o
| > start address -T 1171ae20 Finished loading gazonk520.o
| > 480
| >
| > ACL2>(f-put-global 'safe-mode t state)
| >
| > ACL2_INVISIBLE::|The Live State Itself|
| >
| > ACL2>(ACL2_*1*_ACL2::MATCH-CLAUSE 'DCL '(& . &) '(T))
| >
| > ((AND (CONSP DCL)) (LET () T))
| >
| > ACL2>
| >
| >
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| ++++++++++++++
| >
| > > >    >From your dumps, we see there is a problem in the code
| doing the call
| > > >    to the external function reverse:
| > > >
| > > >    static object  LnkTLI5(object first,...){object
| V1;va_list ap;va_start(ap,first);V1=call_proc_new(VV[5],(void
| **)(void *)&LnkLI5,1,first,ap);va_end(ap);return V1;} /* REVERSE */
| > > >
| > > >    00000100 <_LnkTLI5>:
| > > >     100:        55                      push   %ebp
| > > >     101:        89 e5                   mov    %esp,%ebp
| > > >     103:        8d 55 0c                lea    0xc(%ebp),%edx
| > > >     106:        83 ec 14                sub    $0x14,%esp
| > > >     109:        52                      push   %edx
| > > >     10a:        ff 75 08                pushl  0x8(%ebp)
| > > >     10d:        6a 01                   push   $0x1
| > > >     10f:        68 24 00 00 00          push   $0x24
| > > >     114:        ff 35 14 00 00 00       pushl  0x14
| > > >     11a:        e8 00 00 00 00          call   11f <_LnkTLI5+0x1f>
| > > >     11f:        c9                      leave
| > > >     120:        c3                      ret
| > > >     121:        8d 76 00                lea    0x0(%esi),%esi
| > > >
| > > >    The above disassembly is not yet relocated.  The 'p/x'
| gdb command
| > > >    above will show how it has been relocated.
| > > >
| > > >    The lack of idempotency tells me that it is likely that
| the loader
| > > >    itself is ok, but that something later on is trashing
| the code at this
| > > >    point.  So what we eventually want to do is run the
| (presumably acl2
| > > >    build sequence) steps that first loaded this file under
| gdb, breaking
| > > >    at fasload, and conditionalizing this break to only stop at
| > > >    gazonk520.  We'll step through the function, 'p/x *((char
| > > >    *)0x102dcbbc-16)@32' the code after it is first
| relocated to make sure
| > > >    it is correct, then set a hardware watchpoint to stop when this
| > > >    location is written to.  This should let us know
| definitively what is
| > > >    going on.
| > > >
| > > > So at this point, is it looking like it's not an ACL2
| issue?  It would be good
| > > > not to hold up the ACL2 release this Saturday if ACL2 isn't
| broken here.
| >
| > > It could very well be a gcl issue.  But until we find what is stepping
| > > on the code, it is always possible that some bit of compiled lisp
| > > assumes some arg is of one type, writes to it without an explicit type
| > > check, which when compiled with safety 0 (the default) and passed say
| > > a fixnum can write pretty much anywhere in memory.
| >
| > > This brings to mind a possible gcl improvement.  Binary code loaded
| > > like this should be mprotected read-only regardless of the state of
| > > sgc.  Then we'd get a simple fault when the offending code attempts to
| > > trash the instructions.
| >
| > > >
| > > >    If you don't have gcl compiled with debugging yet, we
| won't be able to
| > > >    conditionalize a fasload break, so we'll set the
| hardware watchpoint
| > > >    up front, stopping once when the code is first loaded, and then a
| > > >    second time when it is trashed.  This watchpoint can
| only be set when
| > > >    the memory area in question is first allocated.  We
| might be so lucky
| > > >    that this is so when gcl is first fired up.  We know we
| can set the
| > > >    watch when heap_end > 0x102dcbbc.  So in the absence of gcl
| > > >    --enable-debug, perhaps the following will do the trick.
| > > >
| > > >    gdb saved_gcl
| > > >    (gdb) b main
| > > >    (gdb) r
| > > >    (breakpoint 1)
| > > >    (gdb) p/x heap_end
| > > >    (gdb) watch heap_end
| > > >    (gdb) cond 2 heap_end > 0x102dcbbc
| > > >    (gdb) c
| > > >    > (do the acl2 build sequence)
| > > >    (breakpoint 2)
| > > >    (gdb) disable 2
| > > >    (gdb) p/x *(char *)address@hidden
| > > >    (gdb) watch *(int *)0x102dcbbc
| > > >    (gdb) p/x *((char *)0x102dcbbc-16)@32
| > > >    (gdb) display/x *((char *)0x102dcbbc-16)@32
| > > >    (gdb) c
| > > >    (breakpoint 3)
| > > >    (gdb) (code displayed on first load, send me this)
| > > >    (gdb) c
| > > >    (breakpoint 3)
| > > >    (gdb) (code displayed when trashed, send me this)
| > > >    (gdb) bt (send me this, as well as lisp output right above this)
| > > >
| > > > I tried the above, but it seemed that the break happened
| way too early (ACL2
| > > > wasn't even out of axioms.lisp yet, and the problem occurs
| when processing
| > > > the next source file, basis.lisp).  Here is a log, perhaps with more
| > > > information than you wanted.
| > > >
| > > > gdb gcl/my-gcl.exe
| > > > GNU gdb 5.2.1
| > > > Copyright 2002 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 "i686-pc-mingw32"...
| > > > (gdb) b main
| > > > Breakpoint 1 at 0x402342
| > > > (gdb) r
| > > > Starting program: C:\matt\acl2\v2-9/gcl/my-gcl.exe
| > > >
| > > > Breakpoint 1, 0x00402342 in main ()
| > > > (gdb) p/x heap_end
| > > > $1 = 0x0
| > > > (gdb) watch heap_end
| > > > Hardware watchpoint 2: {<data variable, no debug info>} 5508064
| > > > (gdb) cond 2 heap_end > 0x102dcbbc
| > > > (gdb) c
| > > > Continuing.
| > > > Hardware watchpoint 2: {<data variable, no debug info>} 5508064
| > > >
| > > > Old value = 271314944
| > > > New value = 271437824
| > > > 0x00404022 in alloc_page ()
| > > > (gdb) disable 2
| > > > (gdb) p/x *(char *)address@hidden
| > > > $2 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
| > > > (gdb) watch *(int *)0x102dcbbc
| > > > Hardware watchpoint 3: *(int *) 271436732
| > > > (gdb) p/x *((char *)0x102dcbbc-16)@32
| > > > $3 = {0x0 <repeats 32 times>}
| > > > (gdb) display/x *((char *)0x102dcbbc-16)@32
| > > > 1: /x *((char *) 271436732 - 16) @ 32 = {0x0 <repeats 32 times>}
| > > > (gdb) c
| > > > Continuing.
| > > > Hardware watchpoint 3: *(int *) 271436732
| > > >
| > > > Old value = 0
| > > > New value = 99
| > > > 0x77c3dc94 in _libwsock32_a_iname ()
| > > > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| > > >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63,
| > > >   0x0 <repeats 15 times>}
| > > > (gdb) c
| > > > Continuing.
| > > > Hardware watchpoint 3: *(int *) 271436732
| > > >
| > > > Old value = 99
| > > > New value = 29795
| > > > 0x77c3dc94 in _libwsock32_a_iname ()
| > > > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| > > >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a,
| 0x65, 0x63, 0x74,
| > > >   0x0 <repeats 14 times>}
| > > > (gdb) bt
| > > > #0  0x77c3dc94 in _libwsock32_a_iname ()
| > > > #1  0x106d8ccc in ?? ()
| > > > #2  0x0041fd8e in writec_stream ()
| > > > #3  0x00421562 in writestr_stream ()
| > > > #4  0x004546ef in princ_str ()
| > > > #5  0x0048458b in LI6 ()
| > > > #6  0x0041acab in quick_call_sfun ()
| > > > #7  0x00419953 in eval ()
| > > > #8  0x00455d39 in Fprogn ()
| > > > #9  0x0041129a in Fcatch ()
| > > > #10 0x00419a4e in eval ()
| > > > #11 0x00455d39 in Fprogn ()
| > > > #12 0x00419a4e in eval ()
| > > > #13 0x00411476 in Funwind_protect ()
| > > > #14 0x00419a4e in eval ()
| > > > #15 0x00455d39 in Fprogn ()
| > > > #16 0x004344ca in Flet ()
| > > > #17 0x00419a4e in eval ()
| > > > #18 0x00455d39 in Fprogn ()
| > > > #19 0x004344ca in Flet ()
| > > > #20 0x00419a4e in eval ()
| > > > #21 0x00455d39 in Fprogn ()
| > > > #22 0x00419a4e in eval ()
| > > > #23 0x00411476 in Funwind_protect ()
| > > > #24 0x00419a4e in eval ()
| > > > #25 0x00455d39 in Fprogn ()
| > > > #26 0x004344ca in Flet ()
| > > > #27 0x00419a4e in eval ()
| > > > #28 0x004184c3 in funcall ()
| > > > #29 0x00419953 in eval ()
| > > > #30 0x00415785 in Fwhen ()
| > > > #31 0x00419a4e in eval ()
| > > > #32 0x00455d39 in Fprogn ()
| > > > #33 0x00419a4e in eval ()
| > > > #34 0x00411476 in Funwind_protect ()
| > > > #35 0x00419a4e in eval ()
| > > > #36 0x00455d39 in Fprogn ()
| > > > #37 0x004344ca in Flet ()
| > > > #38 0x00419a4e in eval ()
| > > > #39 0x00455d39 in Fprogn ()
| > > > #40 0x0043462e in FletA ()
| > > > #41 0x00419a4e in eval ()
| > > > #42 0x00455d39 in Fprogn ()
| > > > #43 0x00419a4e in eval ()
| > > > #44 0x00411476 in Funwind_protect ()
| > > > #45 0x00419a4e in eval ()
| > > > #46 0x00455d39 in Fprogn ()
| > > > #47 0x004344ca in Flet ()
| > > > #48 0x00419a4e in eval ()
| > > > #49 0x004184c3 in funcall ()
| > > > #50 0x00442329 in IapplyVector ()
| > > > #51 0x00419f35 in fLapply ()
| > > > #52 0x0042c4aa in c_apply_n ()
| > > > #53 0x004421c1 in IapplyVector ()
| > > > #54 0x0041897a in funcall ()
| > > > #55 0x00419953 in eval ()
| > > > #56 0x0041a83e in Ieval ()
| > > > #57 0x0040b5c5 in Fsetq ()
| > > > #58 0x00419a4e in eval ()
| > > > #59 0x00455d39 in Fprogn ()
| > > > #60 0x00419a4e in eval ()
| > > > #61 0x00455bbf in Ftagbody ()
| > > > #62 0x00419a4e in eval ()
| > > > #63 0x0041085d in Fblock ()
| > > > #64 0x00419a4e in eval ()
| > > > #65 0x004184c3 in funcall ()
| > > > #66 0x00419953 in eval ()
| > > > #67 0x004102df in let_bind ()
| > > > #68 0x004344b6 in Flet ()
| > > > #69 0x00419a4e in eval ()
| > > > #70 0x00415995 in Funless ()
| > > > #71 0x00419a4e in eval ()
| > > > #72 0x00455d39 in Fprogn ()
| > > > #73 0x004344ca in Flet ()
| > > > #74 0x00419a4e in eval ()
| > > > #75 0x004151c8 in Fcond ()
| > > > #76 0x00419a4e in eval ()
| > > > #77 0x004184c3 in funcall ()
| > > > #78 0x00419953 in eval ()
| > > > #79 0x0041a93d in fLeval ()
| > > > #80 0x0042c4aa in c_apply_n ()
| > > > #81 0x0044246f in Iinvoke_c_function_from_value_stack ()
| > > > #82 0x0041a8f5 in Leval ()
| > > > #83 0x1051a392 in ?? ()
| > > > #84 0x1051a955 in ?? ()
| > > > #85 0x0041acc0 in quick_call_sfun ()
| > > > #86 0x00418912 in funcall ()
| > > > #87 0x102b0ee6 in ?? ()
| > > > #88 0x102a5624 in ?? ()
| > > > #89 0x103d77f1 in ?? ()
| > > > #90 0x1043163b in ?? ()
| > > > #91 0x10436e21 in ?? ()
| > > > #92 0x0041acab in quick_call_sfun ()
| > > > #93 0x102ec9b7 in ?? ()
| > > > #94 0x102ee171 in ?? ()
| > > > #95 0x102ee381 in ?? ()
| > > > #96 0x102eef45 in ?? ()
| > > > #97 0x102f5743 in ?? ()
| > > > #98 0x104be86a in ?? ()
| > > > #99 0x104be954 in ?? ()
| > > > #100 0x0042d094 in call_proc_new ()
| > > > #101 0x104c71ef in ?? ()
| > > > #102 0x104bec0c in ?? ()
| > > > #103 0x0042d094 in call_proc_new ()
| > > > #104 0x104c7183 in ?? ()
| > > > #105 0x104c014e in ?? ()
| > > > #106 0x0042d094 in call_proc_new ()
| > > > #107 0x105223d7 in ?? ()
| > > > #108 0x1051dbd3 in ?? ()
| > > > #109 0x00419968 in eval ()
| > > > #110 0x0041a93d in fLeval ()
| > > > #111 0x0042c4aa in c_apply_n ()
| > > > #112 0x004421c1 in IapplyVector ()
| > > > #113 0x0041897a in funcall ()
| > > > #114 0x00419953 in eval ()
| > > > #115 0x004184c3 in funcall ()
| > > > #116 0x00419953 in eval ()
| > > > #117 0x0041a93d in fLeval ()
| > > > #118 0x0042c4aa in c_apply_n ()
| > > > #119 0x004421c1 in IapplyVector ()
| > > > #120 0x0041897a in funcall ()
| > > > #121 0x0051e95e in LI1 ()
| > > > #122 0x0041ac32 in quick_call_sfun ()
| > > > #123 0x00418912 in funcall ()
| > > > #124 0x00442329 in IapplyVector ()
| > > > #125 0x00419e3d in fLfuncall ()
| > > > #126 0x0042c4aa in c_apply_n ()
| > > > #127 0x004421c1 in IapplyVector ()
| > > > #128 0x0041897a in funcall ()
| > > > #129 0x00419953 in eval ()
| > > > #130 0x004184c3 in funcall ()
| > > > #131 0x00419953 in eval ()
| > > > #132 0x004184c3 in funcall ()
| > > > #133 0x004027a1 in main ()
| > > > (gdb) c
| > > > Continuing.
| > > > Hardware watchpoint 3: *(int *) 271436732
| > > >
| > > > Old value = 29795
| > > > New value = 2126947
| > > > 0x77c3dc94 in _libwsock32_a_iname ()
| > > > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| > > >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a,
| 0x65, 0x63, 0x74,
| > > >   0x20, 0x0 <repeats 13 times>}
| > > > (gdb) bt
| > > > #0  0x77c3dc94 in _libwsock32_a_iname ()
| > > > #1  0x106d8ccc in ?? ()
| > > > #2  0x0041fd8e in writec_stream ()
| > > > #3  0x00421562 in writestr_stream ()
| > > > #4  0x004546ef in princ_str ()
| > > > #5  0x0048458b in LI6 ()
| > > > #6  0x0041acab in quick_call_sfun ()
| > > > #7  0x00419953 in eval ()
| > > > #8  0x00455d39 in Fprogn ()
| > > > #9  0x0041129a in Fcatch ()
| > > > #10 0x00419a4e in eval ()
| > > > #11 0x00455d39 in Fprogn ()
| > > > #12 0x00419a4e in eval ()
| > > > #13 0x00411476 in Funwind_protect ()
| > > > #14 0x00419a4e in eval ()
| > > > #15 0x00455d39 in Fprogn ()
| > > > #16 0x004344ca in Flet ()
| > > > #17 0x00419a4e in eval ()
| > > > #18 0x00455d39 in Fprogn ()
| > > > #19 0x004344ca in Flet ()
| > > > #20 0x00419a4e in eval ()
| > > > #21 0x00455d39 in Fprogn ()
| > > > #22 0x00419a4e in eval ()
| > > > #23 0x00411476 in Funwind_protect ()
| > > > #24 0x00419a4e in eval ()
| > > > #25 0x00455d39 in Fprogn ()
| > > > #26 0x004344ca in Flet ()
| > > > #27 0x00419a4e in eval ()
| > > > #28 0x004184c3 in funcall ()
| > > > #29 0x00419953 in eval ()
| > > > #30 0x00415785 in Fwhen ()
| > > > #31 0x00419a4e in eval ()
| > > > #32 0x00455d39 in Fprogn ()
| > > > #33 0x00419a4e in eval ()
| > > > #34 0x00411476 in Funwind_protect ()
| > > > #35 0x00419a4e in eval ()
| > > > #36 0x00455d39 in Fprogn ()
| > > > #37 0x004344ca in Flet ()
| > > > #38 0x00419a4e in eval ()
| > > > #39 0x00455d39 in Fprogn ()
| > > > #40 0x0043462e in FletA ()
| > > > #41 0x00419a4e in eval ()
| > > > #42 0x00455d39 in Fprogn ()
| > > > #43 0x00419a4e in eval ()
| > > > #44 0x00411476 in Funwind_protect ()
| > > > #45 0x00419a4e in eval ()
| > > > #46 0x00455d39 in Fprogn ()
| > > > #47 0x004344ca in Flet ()
| > > > #48 0x00419a4e in eval ()
| > > > #49 0x004184c3 in funcall ()
| > > > #50 0x00442329 in IapplyVector ()
| > > > #51 0x00419f35 in fLapply ()
| > > > #52 0x0042c4aa in c_apply_n ()
| > > > #53 0x004421c1 in IapplyVector ()
| > > > #54 0x0041897a in funcall ()
| > > > #55 0x00419953 in eval ()
| > > > #56 0x0041a83e in Ieval ()
| > > > #57 0x0040b5c5 in Fsetq ()
| > > > #58 0x00419a4e in eval ()
| > > > #59 0x00455d39 in Fprogn ()
| > > > #60 0x00419a4e in eval ()
| > > > #61 0x00455bbf in Ftagbody ()
| > > > #62 0x00419a4e in eval ()
| > > > #63 0x0041085d in Fblock ()
| > > > #64 0x00419a4e in eval ()
| > > > #65 0x004184c3 in funcall ()
| > > > #66 0x00419953 in eval ()
| > > > #67 0x004102df in let_bind ()
| > > > #68 0x004344b6 in Flet ()
| > > > #69 0x00419a4e in eval ()
| > > > #70 0x00415995 in Funless ()
| > > > #71 0x00419a4e in eval ()
| > > > #72 0x00455d39 in Fprogn ()
| > > > #73 0x004344ca in Flet ()
| > > > #74 0x00419a4e in eval ()
| > > > #75 0x004151c8 in Fcond ()
| > > > #76 0x00419a4e in eval ()
| > > > #77 0x004184c3 in funcall ()
| > > > #78 0x00419953 in eval ()
| > > > #79 0x0041a93d in fLeval ()
| > > > #80 0x0042c4aa in c_apply_n ()
| > > > #81 0x0044246f in Iinvoke_c_function_from_value_stack ()
| > > > #82 0x0041a8f5 in Leval ()
| > > > #83 0x1051a392 in ?? ()
| > > > #84 0x1051a955 in ?? ()
| > > > #85 0x0041acc0 in quick_call_sfun ()
| > > > #86 0x00418912 in funcall ()
| > > > #87 0x102b0ee6 in ?? ()
| > > > #88 0x102a5624 in ?? ()
| > > > #89 0x103d77f1 in ?? ()
| > > > #90 0x1043163b in ?? ()
| > > > #91 0x10436e21 in ?? ()
| > > > #92 0x0041acab in quick_call_sfun ()
| > > > #93 0x102ec9b7 in ?? ()
| > > > #94 0x102ee171 in ?? ()
| > > > #95 0x102ee381 in ?? ()
| > > > #96 0x102eef45 in ?? ()
| > > > #97 0x102f5743 in ?? ()
| > > > #98 0x104be86a in ?? ()
| > > > #99 0x104be954 in ?? ()
| > > > #100 0x0042d094 in call_proc_new ()
| > > > #101 0x104c71ef in ?? ()
| > > > #102 0x104bec0c in ?? ()
| > > > #103 0x0042d094 in call_proc_new ()
| > > > #104 0x104c7183 in ?? ()
| > > > #105 0x104c014e in ?? ()
| > > > #106 0x0042d094 in call_proc_new ()
| > > > #107 0x105223d7 in ?? ()
| > > > #108 0x1051dbd3 in ?? ()
| > > > #109 0x00419968 in eval ()
| > > > #110 0x0041a93d in fLeval ()
| > > > #111 0x0042c4aa in c_apply_n ()
| > > > #112 0x004421c1 in IapplyVector ()
| > > > #113 0x0041897a in funcall ()
| > > > #114 0x00419953 in eval ()
| > > > #115 0x004184c3 in funcall ()
| > > > #116 0x00419953 in eval ()
| > > > #117 0x0041a93d in fLeval ()
| > > > #118 0x0042c4aa in c_apply_n ()
| > > > #119 0x004421c1 in IapplyVector ()
| > > > #120 0x0041897a in funcall ()
| > > > #121 0x0051e95e in LI1 ()
| > > > #122 0x0041ac32 in quick_call_sfun ()
| > > > #123 0x00418912 in funcall ()
| > > > #124 0x00442329 in IapplyVector ()
| > > > #125 0x00419e3d in fLfuncall ()
| > > > #126 0x0042c4aa in c_apply_n ()
| > > > #127 0x004421c1 in IapplyVector ()
| > > > #128 0x0041897a in funcall ()
| > > > #129 0x00419953 in eval ()
| > > > #130 0x004184c3 in funcall ()
| > > > #131 0x00419953 in eval ()
| > > > #132 0x004184c3 in funcall ()
| > > > #133 0x004027a1 in main ()
| > > > (gdb)
| >
| > > I think you might be able to keep going.  The watch will be triggered
| > > 4 times for each write if its being done 1 char at a time.  You should
| > > be able to eventually get to a break between the start and finish of
| > > the gazonk520.o load.  This piece of memory is apparently used for
| > > some other intermediate memory malloced by winsock.  My guess is that
| > > it is subsequently freed, after which it is later reused for the load
| > > of gazonk520.o.
| >
| > > If you have to manually continue too many times, you can 'ignore 3
| > > 500', or something to skip over 500 triggers.  If there are truly too
| > > many of these, we'd likely be better off trying with gcl
| > > --enable-debug, *in a separate location -- not overwriting this
| > > build*, and making sure the error still exists in same.  More likely
| > > than not, though, this will move the location of the error.  While we
| > > have it somewhat cornered, it would be great to pinpoint.
| >
| > OK, I did the experiment, after hitting "c" (or <return>) over
| 300 times (I
| > believe).  Here is the result (with some extra irrelevant stuff
| surrounding the
| > part of interest, but mostly with such extra stuff deleted as
| indicated by
| > the <<< etc. >>> marker).  Extra comments are added as ";;; !!!".
| >
| > gdb gcl/my-gcl.exe
| > GNU gdb 5.2.1
| > Copyright 2002 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 "i686-pc-mingw32"...
| > (gdb) b main
| > Breakpoint 1 at 0x402342
| > (gdb) r
| > Starting program: C:\matt\acl2\v2-9/gcl/my-gcl.exe
| >
| > Breakpoint 1, 0x00402342 in main ()
| > (gdb) p/x heap_end
| > $1 = 0x0
| > (gdb) watch heap_end
| > Hardware watchpoint 2: {<data variable, no debug info>} 5508064
| > (gdb) cond 2 heap_end > 0x102dcbbc
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 2: {<data variable, no debug info>} 5508064
| >
| > Old value = 271314944
| > New value = 271437824
| > 0x00404022 in alloc_page ()
| > (gdb) disable 2
| > (gdb) p/x *(char *)address@hidden
| > $2 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
| > (gdb) watch *(int *)0x102dcbbc
| > Hardware watchpoint 3: *(int *) 271436732
| > (gdb) p/x *((char *)0x102dcbbc-16)@32
| > $3 = {0x0 <repeats 32 times>}
| > (gdb) display/x *((char *)0x102dcbbc-16)@32
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x0 <repeats 32 times>}
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 0
| > New value = 99
| > 0x77c3dc94 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63,
| >   0x0 <repeats 15 times>}
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 99
| > New value = 29795
| > 0x77c3dc94 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a, 0x65,
| 0x63, 0x74,
| >   0x0 <repeats 14 times>}
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 29795
| > New value = 2126947
| > 0x77c3dc94 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a, 0x65,
| 0x63, 0x74,
| >   0x20, 0x0 <repeats 13 times>}
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 2126947
| > New value = 706770019
| > 0x77c3dc94 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x64, 0x65, 0x66,
| 0x69, 0x6e, 0x65,
| >   0x20, 0x56, 0x56, 0x20, 0x28, 0x28, 0x6f, 0x62, 0x6a, 0x65,
| 0x63, 0x74,
| >   0x20, 0x2a, 0x0 <repeats 12 times>}
| >
| > <<< etc. >>>
| >
| > (gdb)
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 674238479
| > New value = 1160777743
| > 0x77c3e410 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x2d, 0x45, 0x51, 0xf,
| 0x4, 0x2f,
| >   0x4e, 0x55, 0x4c, 0x4c, 0xf, 0x3, 0x2f, 0x43, 0x41, 0x52,
| 0xf, 0x10, 0x30,
| >   0x45, 0x51, 0x55, 0x41, 0x64, 0x20, 0x2a, 0x29, 0x26, 0x4c,
| 0x6e, 0x6b, 0x34}
| > (gdb)
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 1160777743
| > New value = 1160777728
| > 0x77c3df24 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x8, 0x6a, 0x1, 0x68,
| 0x24, 0x0, 0x0,
| >   0x0, 0xff, 0x35, 0x14, 0x0, 0x0, 0x0, 0xe8, 0x0, 0x0, 0x10,
| 0x30, 0x45,
| >   0x51, 0x55, 0x41, 0x4c, 0x2d, 0x58, 0x2d, 0x43, 0x4f, 0x4e,
| 0x53, 0x54}
| > ;;; !!! Current last line of ACL2 output: "Loading gazonk520.o"
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = 1160777728
| > New value = -922746880
| > 0x77c3df24 in _libwsock32_a_iname ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x8, 0x6a, 0x1, 0x68,
| 0x24, 0x0, 0x0,
| >   0x0, 0xff, 0x35, 0x14, 0x0, 0x0, 0x0, 0xe8, 0x0, 0x0, 0x0,
| 0x0, 0xc9, 0xc3,
| >   0x55, 0x41, 0x4c, 0x2d, 0x58, 0x2d, 0x43, 0x4f, 0x4e, 0x53, 0x54}
| > ;;; !!! Current last line of ACL2 output is STILL: "Loading gazonk520.o"
| > (gdb) bt
| > #0  0x77c3df24 in _libwsock32_a_iname ()
| > #1  0x0022e320 in ?? ()
| > #2  0x77c3dfdf in _libwsock32_a_iname ()
| > #3  0x00462b0e in fasload ()
| > #4  0x004229a1 in Lload ()
| > #5  0x00419968 in eval ()
| > #6  0x00455d39 in Fprogn ()
| > #7  0x004344ca in Flet ()
| > #8  0x00419a4e in eval ()
| > #9  0x00415995 in Funless ()
| > #10 0x00419a4e in eval ()
| > #11 0x00455d39 in Fprogn ()
| > #12 0x004344ca in Flet ()
| > #13 0x00419a4e in eval ()
| > #14 0x004151c8 in Fcond ()
| > #15 0x00419a4e in eval ()
| > #16 0x004184c3 in funcall ()
| > #17 0x00419953 in eval ()
| > #18 0x0041a93d in fLeval ()
| > #19 0x0042c4aa in c_apply_n ()
| > #20 0x0044246f in Iinvoke_c_function_from_value_stack ()
| > #21 0x0041a8f5 in Leval ()
| > #22 0x1051a392 in ?? ()
| > #23 0x1051a955 in ?? ()
| > #24 0x0041acc0 in quick_call_sfun ()
| > #25 0x00418912 in funcall ()
| > #26 0x102b0ee6 in ?? ()
| > #27 0x102a5624 in ?? ()
| > #28 0x103d77f1 in ?? ()
| > #29 0x1043163b in ?? ()
| > #30 0x10436e21 in ?? ()
| > #31 0x0041acab in quick_call_sfun ()
| > #32 0x102ec9b7 in ?? ()
| > #33 0x102ee171 in ?? ()
| > #34 0x102ee381 in ?? ()
| > #35 0x102eef45 in ?? ()
| > #36 0x102f5743 in ?? ()
| > #37 0x104be86a in ?? ()
| > #38 0x104be954 in ?? ()
| > #39 0x104bec0c in ?? ()
| > #40 0x104c014e in ?? ()
| > #41 0x1051dbd3 in ?? ()
| > #42 0x00419968 in eval ()
| > #43 0x0041a93d in fLeval ()
| > #44 0x0042c4aa in c_apply_n ()
| > #45 0x004421c1 in IapplyVector ()
| > #46 0x0041897a in funcall ()
| > #47 0x00419953 in eval ()
| > #48 0x004184c3 in funcall ()
| > #49 0x00419953 in eval ()
| > #50 0x0041a93d in fLeval ()
| > #51 0x0042c4aa in c_apply_n ()
| > #52 0x004421c1 in IapplyVector ()
| > #53 0x0041897a in funcall ()
| > #54 0x0051e95e in LI1 ()
| > #55 0x0041ac32 in quick_call_sfun ()
| > #56 0x00418912 in funcall ()
| > #57 0x00442329 in IapplyVector ()
| > #58 0x00419e3d in fLfuncall ()
| > #59 0x0042c4aa in c_apply_n ()
| > #60 0x004421c1 in IapplyVector ()
| > #61 0x0041897a in funcall ()
| > #62 0x00419953 in eval ()
| > #63 0x004184c3 in funcall ()
| > #64 0x00419953 in eval ()
| > #65 0x004184c3 in funcall ()
| > #66 0x004027a1 in main ()
| > (gdb) c
| > Continuing.
| > Hardware watchpoint 3: *(int *) 271436732
| >
| > Old value = -922746880
| > New value = -907012862
| > 0x00462d0e in fasload ()
| > 1: /x *((char *) 271436732 - 16) @ 32 = {0x8, 0x6a, 0x1, 0x68,
| 0x64, 0xcc,
| >   0x2d, 0x10, 0xff, 0x35, 0x54, 0xcc, 0x2d, 0x10, 0xe8, 0xe9,
| 0x2, 0x15, 0xf0,
| >   0xc9, 0xc3, 0x8d, 0x76, 0x0, 0x55, 0x89, 0xe5, 0x8d, 0x55,
| 0xc, 0x83, 0xec}
| > ;;; !!! Current last line of ACL2 output is STILL: "Loading gazonk520.o"
| > (gdb) bt
| > #0  0x00462d0e in fasload ()
| > #1  0x004229a1 in Lload ()
| > #2  0x00419968 in eval ()
| > #3  0x00455d39 in Fprogn ()
| > #4  0x004344ca in Flet ()
| > #5  0x00419a4e in eval ()
| > #6  0x00415995 in Funless ()
| > #7  0x00419a4e in eval ()
| > #8  0x00455d39 in Fprogn ()
| > #9  0x004344ca in Flet ()
| > #10 0x00419a4e in eval ()
| > #11 0x004151c8 in Fcond ()
| > #12 0x00419a4e in eval ()
| > #13 0x004184c3 in funcall ()
| > #14 0x00419953 in eval ()
| > #15 0x0041a93d in fLeval ()
| > #16 0x0042c4aa in c_apply_n ()
| > #17 0x0044246f in Iinvoke_c_function_from_value_stack ()
| > #18 0x0041a8f5 in Leval ()
| > #19 0x1051a392 in ?? ()
| > #20 0x1051a955 in ?? ()
| > #21 0x0041acc0 in quick_call_sfun ()
| > #22 0x00418912 in funcall ()
| > #23 0x102b0ee6 in ?? ()
| > #24 0x102a5624 in ?? ()
| > #25 0x103d77f1 in ?? ()
| > #26 0x1043163b in ?? ()
| > #27 0x10436e21 in ?? ()
| > #28 0x0041acab in quick_call_sfun ()
| > #29 0x102ec9b7 in ?? ()
| > #30 0x102ee171 in ?? ()
| > #31 0x102ee381 in ?? ()
| > #32 0x102eef45 in ?? ()
| > #33 0x102f5743 in ?? ()
| > #34 0x104be86a in ?? ()
| > #35 0x104be954 in ?? ()
| > #36 0x104bec0c in ?? ()
| > #37 0x104c014e in ?? ()
| > #38 0x1051dbd3 in ?? ()
| > #39 0x00419968 in eval ()
| > #40 0x0041a93d in fLeval ()
| > #41 0x0042c4aa in c_apply_n ()
| > #42 0x004421c1 in IapplyVector ()
| > #43 0x0041897a in funcall ()
| > #44 0x00419953 in eval ()
| > #45 0x004184c3 in funcall ()
| > #46 0x00419953 in eval ()
| > #47 0x0041a93d in fLeval ()
| > #48 0x0042c4aa in c_apply_n ()
| > #49 0x004421c1 in IapplyVector ()
| > #50 0x0041897a in funcall ()
| > #51 0x0051e95e in LI1 ()
| > #52 0x0041ac32 in quick_call_sfun ()
| > #53 0x00418912 in funcall ()
| > #54 0x00442329 in IapplyVector ()
| > #55 0x00419e3d in fLfuncall ()
| > #56 0x0042c4aa in c_apply_n ()
| > #57 0x004421c1 in IapplyVector ()
| > #58 0x0041897a in funcall ()
| > #59 0x00419953 in eval ()
| > #60 0x004184c3 in funcall ()
| > #61 0x00419953 in eval ()
| > #62 0x004184c3 in funcall ()
| > #63 0x004027a1 in main ()
| > (gdb) c
| >
| > Continuing.
| >
| > At this point it continued on well past gazonk520 (and
| gazonk521, gazonk522,
| > ...) so I killed it.
| >
| > > Take care,
| >
| > Let me know if you need anything else.  It should be easy
| enough to set you up
| > on Jared's machine -- I could presumably copy over the small
| modifications I
| > made to ACL2 in support of these experiments.
| >
| > Thank you for your responsiveness.  I'd appreciate any further
| opinions on
| > whether we should proceed with the ACL2 2.9 release Saturday morning.
| >
| > -- Matt
| >
| > > >
| > > >    If you can reproduce with gcl built with --enable-debug, then
| > > >
| > > > I don't seem to have the gcl sources yet....
| > > >
| > > >    gdb saved_gcl
| > > >    (gdb) b main
| > > >    (gdb) r
| > > >    (breakpoint 1)
| > > >    (gdb) b sfasl.c:365
| > > >    (gdb) cond 2 strstr(filename,"gazonk520")
| > > >    (gdb) c
| > > >    > (do acl2 build sequence)
| > > >    (breakpoint 2)
| > > >    (gdb) p/x *((char *)0x102dcbbc-16)@32
| > > >    (gdb) display/x *((char *)0x102dcbbc-16)@32
| > > >    (gdb) watch *(int *)0x102dcbbc
| > > >    (gdb) c
| > > >    (breakpoint 3)
| > > >    (gdb) (code displayed when trashed, send me this)
| > > >    (gdb) bt (send me this, as well as lisp output right above this)
| > > >
| > > >    Thanks for your help with this.  And please excuse the
| tedium -- I
| > > >    don't have access to one of these machines myself.
| > > >
| > > >    Take care,
| > > >
| > > >    --
| > > >    Camm Maguire
| address@hidden
| > > >
| ==========================================================================
| > > >    "The earth is but one country, and mankind its
| citizens."  --  Baha'u'llah
| > > >
| > > > Feel free to send further instructions.  I'm heading into
| work shortly, but I
| > > > can do some more tonight.
| > > >
| > > > -- Matt
| > > >
| > > >
| > > > _______________________________________________
| > > > Gcl-devel mailing list
| > > > address@hidden
| > > > http://lists.gnu.org/mailman/listinfo/gcl-devel
| > > >
| > > >
| > > >
| >
| > > --
| > > Camm Maguire
| address@hidden
| > >
| ==========================================================================
| > > "The earth is but one country, and mankind its citizens."  --
|  Baha'u'llah
| >
| >
| >
| > _______________________________________________
| > Gcl-devel mailing list
| > address@hidden
| > http://lists.gnu.org/mailman/listinfo/gcl-devel
| >
| >
| >
|
| --
| Camm Maguire                                          address@hidden
| ==========================================================================
| "The earth is but one country, and mankind its citizens."  --  Baha'u'llah
|
|
| _______________________________________________
| Gcl-devel mailing list
| address@hidden
| http://lists.gnu.org/mailman/listinfo/gcl-devel
|






reply via email to

[Prev in Thread] Current Thread [Next in Thread]