delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/01/29/07:30:41

From: ao950 AT FreeNet DOT Carleton DOT CA (Paul Derbyshire)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Debugging with DJGPP
Date: 29 Jan 1998 11:42:17 GMT
Organization: The National Capital FreeNet
Lines: 36
Message-ID: <6appup$pop@freenet-news.carleton.ca>
References: <34c8017e DOT 36688673 AT news DOT freenet DOT hut DOT fi>
Reply-To: ao950 AT FreeNet DOT Carleton DOT CA (Paul Derbyshire)
NNTP-Posting-Host: freenet5.carleton.ca
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp


If you ever get more tracebacks, while not using GDB, run "symify foo.exe"
immediately after the crash, and nice useful function names will be
printed by the hex codes in the traceback. One of these is the problem
site usually.

The "symify" program is one of a half-hundred little utilities put in your
Bin dir when you installed; its express purpose is debugging tracebacks.

Note that if you use C++, the names may be mangled, so your "foo" function
might show up as something like:

foo__Fv         (means foo(void) crashed)
foo__Fii        (means foo(int, int) crashed)
foo__FPi        (means foo(int *) crashed)
foo__FcPc       (means foo(char, char *) crashed)

The mangling scheme seems to be two underscores, 'F' on a function, then v for
void, or else a sequence of parameter type words each of which is either a
single lowercase letter (i is int, c is char, d is double, f is float, b
is bool, s short, llong, x long long, and r long double) possibly prefixed
with P (which means "pointer to") or 'PC' ("pointer to constant") or many
of these (multiple indirection). User defined types named Foo or Bar seem
to show up as 3Foo or G3Bar... the name of the type with a seemingly
random prefix. pointers with 'P' prefixed, pointers to constants with 'PC'
prefixed. All these seem to be in the order the parameters appear in the
function. All of this I got by experimenting with various overloaded functions
compiled to .o's and 'nm'ed. Oddly enough, the sample class Foo I made
didn't show up, nor any of its methods, in the 'nm' output...

--
    .*.  Friendship, companionship, love, and having fun are the reasons for
 -()  <  life. All else; sex, money, fame, etc.; are just to get/express these.
    `*'  Send any and all mail with attachments to the hotmail address please.
Paul Derbyshire ao950 AT freenet DOT carleton DOT ca pgd73 AT hotmail DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019