stacktrace from withn an exec upon error condition

Randall R Schulz rrschulz@cris.com
Thu Mar 28 20:21:00 GMT 2002


Chris,

If you're going to take the time to respond, the least you could do is give 
a useful answer.


Since unlike Chris, I do not know the answer, I'll illustrate how I 
discovered it.


Hans is correct that there is no prototype for this function in any file 
under /usr/include, though there is a mention of it:

% cd /usr/include
% egrep cygwin_stackdump $(find -type f)
./cygwin/version.h:       16: Export cygwin_stackdump

Upon examination, it is seen that this is in a long comment listing 
API_MINOR changes.


Hans, if you're not aware of it, you should learn about the "nm" command 
which dumps the symbol table of an object file or library. In circumstances 
like this, I usually write a shell loop to examine all the libraries in 
/usr/lib, applying nm to each and piping the output through egrep. Egrep's 
-q option helps:

cd /usr/lib
for libName in *.a; do
         nm $libName | (egrep -s cygwin_stackdump && echo $libName)
done

Doing this shows me that cygwin_stackdump is present in libc.a, libcygwin.a 
and libg.a. An "ls -l" on these shows that libg.a is a symlink to libc.a. I 
don't know what libcygwin.a is for, but it's about 100K bigger than libc.a.

Assuming you're linking with libc.a, you should be able to just call the 
function (that is, if you  compile with gcc options that don't demand 
function prototypes). If you need the prototype, then I'd take it from 
Chris' first answer on this topic that the default prototype for this 
function would work. Namely: "extern int cygwin_stackdump(void)".

Good luck.

Randall Schulz
Mountain View, CA USA


At 15:05 2002-03-28, Christopher Faylor wrote:
>On Thu, Mar 28, 2002 at 03:13:15PM -0800, Hans Horn wrote:
> >I'm afraid not, as I do not know what files to #include so the runtime will
> >find cygwin_stackdump().
>
>I guess you're out of luck then.
>
>cgf


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list