This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: static vs. shared linking


On 30/03/15 11:55, Corinna Vinschen wrote:
On Mar 25 22:42, David Stacey wrote:
I've never had much joy out of addr2line before, and I'm struggling to
recreate what you've done. I've added '-g' to the command line, run 'go.sh'
again. This generates a fresh stackdump file, and then I do:
awk '/^[0-9]/{print $2}' shared_test.exe.stackdump | addr2line -f -e
shared_test.exe
but I just see question marks. Please could you show the exact lines you're
using.
addr2line is a bit dumb and needs help.  What I do is to cat the
stackdump file and look at the addresses.  They usually show where
the stuff comes from:

   $ gawk '/^0/{print $2}' mkgroup.exe.stackdump
   7FFBDC82DDB6
   001800FEC36
   001800FE188
   001800CF471
   001800CF53D
   0018007EAC1
   00100402DE6
   00180049411
   00180046369
   00180046180
   00180049488
   00100401351
   00100401010
   7FFBD9FE13D2
   7FFBDC85EB64

The 7f addresses are from OS DLLs you can't read with addr2line.
0018xxx is the Cygwin DLL, 0010xxx is the application itself.  Other
addresses are other DLLs.  Just check the addresses against
/etc/rebase.db.x86_64.

Then call addr2line for each object file, e.g.:

   $ addr2line -e /usr/bin/cygwin1.dll 001800FEC36 001800FE188 001800CF471
   [...]/cygwin/passwd.cc:576
   [...]/cygwin/passwd.cc:353
   [...]/cygwin/grp.cc:413
   $ addr2line -e /usr/bin/mkgroup.exe 00100401351 00100401010
   /usr/src/debug/cygwin-1.7.35-1/winsup/cygwin/lib/cygwin_crt0.c:22
   /usr/src/debug/cygwin-1.7.35-1/winsup/cygwin/crt0.c:34

Thank you for your reply and the explanation. That requires quite a bit of knowledge before addr2line is usable - no wonder I've never had anything sensible out of it before!

Back to the matter in hand - I don't suppose you had thoughts on why my simple application crashes when linked as shared, but works fine when linked statically?

Dave.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]