[Top][All Lists]

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

Re: [Gcl-devel] GCL on mingw

From: Vadim V. Zhytnikov
Subject: Re: [Gcl-devel] GCL on mingw
Date: Sat, 13 Dec 2003 01:25:44 +0300
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.5) Gecko/20031006

Camm Maguire ?????:
Hi Vadim, and thanks!

"Vadim V. Zhytnikov" <address@hidden> writes:

1) value of the configure determined define DBEGIN

#define DBEGIN _dbegin

with hard coded _dbegin = 0x10100000

I know this is in main.c, but doesn't configure put out a line like

checking finding DBEGIN... got 0x8000000


2) on building a gcl with --enable-debug, run under gdb, breaking at
  main, and report the value of 'p sbrk(0)'



3) break at init_lisp, stop at this line:
        if (NULL_OR_ON_C_STACK(&j) == 0
            || NULL_OR_ON_C_STACK(Cnil) != 0
            || (((unsigned long )core_end) !=0
                && NULL_OR_ON_C_STACK(core_end) != 0))
          { /* check person has correct definition of above */
            error("NULL_OR_ON_C_STACK macro invalid");
  and report the values returned by 'p &j', 'p &Cnil_body', and 'p

I guess you mean initlisp.  But I really have a trouble with
this test.  If I make
 (gdb) br initlisp
GDB responds that it will stop at some address.
So far so good. But when I make
 (gdb) run
GCL starts but nothing happens - no breakpoint is activated.
What I'm doing wrong?

For this you need to run gdb on raw_gcl, and invoke as (in gdb):

r ./ <foo

in the unixport subdir.

&j          0x22ff64
&Cnil_body  0x54d1a0
core_end    0x101c8000

4) Try to let me know if the C stack counts up or down.  I.e. break in
  some function with a local variable defined, and print the address
  of that variable, and compare it to the address of a local variable
  defined in a surrounding function (i.e. a parent function).

Stack counts down as far as I understand.  At least this is frame
addresses for trivial recursive function:

0: 0x22fe48
1: 0x22fe68
2: 0x22fe88

OK, thanks!  Do you knwo what the default stack size limits are on
mingw?  I think its 8M by default on Debian Linux.  Is there a system
call that can be made to determine this value?

The stack and the heap are clearly not overlapping.  My guess is that
the static areas won't pose a problem as well.  Which leaves shared
libs as a possibility.  We may have to get the backtrace from the
failure to allocate error to pinpoint this.

Take care,


     Vadim V. Zhytnikov


     Vadim V. Zhytnikov


reply via email to

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