From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0052876181497422555==" MIME-Version: 1.0 From: marko@kevac.org To: elfutils-devel@lists.fedorahosted.org Subject: Re: Using libdw to get symbol names inside signal handler Date: Fri, 01 Apr 2016 14:41:11 +0000 Message-ID: In-Reply-To: 1459517668.8147.148.camel@redhat.com --===============0052876181497422555== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Fri, Apr 1, 2016 at 4:34 PM Mark Wielaard wrote: > > It does have documentation, but it is indeed not as full as we would > like. Please take a look at libdw.h and libdwfl.h > For someone who is familiar with ELF innards maybe, but for someone who just wants backtrace and symbol names not so much :-) > If you really need an in-process unwinder then I would recommend you > take a look at the libbacktrace from the GCC project: > https://gcc.gnu.org/viewcvs/gcc/trunk/libbacktrace/ I really do. Not only for logging after segmentation fault, but also for watchdog feature: print stack trace if program stuck somewhere and could not rewind SIGALRM timeout in time. I have found standalone fork of libbacktrace ( https://github.com/ErwanLegrand/libbacktrace ) and will try it. Thank you. > If you just want to get a good backtrace when you get a SIGSEGV or other > fatal signal it makes sense to just call eu-stack -P TID on yourself. > fork and exec are signal safe. And then you don't have to try to deal > with a possibly corrupt program. > It would be fine for SIGSEGV case, but not for watchdog (SIGALRM) case. Thanks again for rapid answer! --===============0052876181497422555== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRy Ij5PbiBGcmksIEFwciAxLCAyMDE2IGF0IDQ6MzQgUE0gTWFyayBXaWVsYWFyZCAmbHQ7PGEgaHJl Zj0ibWFpbHRvOm1qd0ByZWRoYXQuY29tIj5tandAcmVkaGF0LmNvbTwvYT4mZ3Q7IHdyb3RlOjwv ZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAu OGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPgo8YnI+Ckl0 IGRvZXMgaGF2ZSBkb2N1bWVudGF0aW9uLCBidXQgaXQgaXMgaW5kZWVkIG5vdCBhcyBmdWxsIGFz IHdlIHdvdWxkPGJyPgpsaWtlLiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgbGliZHcuaCBhbmQgbGli ZHdmbC5oPGJyPjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48ZGl2PkZvciBzb21lb25lIHdo byBpcyBmYW1pbGlhciB3aXRoIEVMRiBpbm5hcmRzIG1heWJlLCBidXQgZm9yIHNvbWVvbmUgd2hv IGp1c3Qgd2FudHMgYmFja3RyYWNlIGFuZCBzeW1ib2wgbmFtZXMgbm90IHNvIG11Y2ggOi0pPC9k aXY+PGRpdj7CoDwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1h cmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDox ZXgiPgpJZiB5b3UgcmVhbGx5IG5lZWQgYW4gaW4tcHJvY2VzcyB1bndpbmRlciB0aGVuIEkgd291 bGQgcmVjb21tZW5kIHlvdTxicj4KdGFrZSBhIGxvb2sgYXQgdGhlIGxpYmJhY2t0cmFjZSBmcm9t IHRoZSBHQ0MgcHJvamVjdDo8YnI+CjxhIGhyZWY9Imh0dHBzOi8vZ2NjLmdudS5vcmcvdmlld2N2 cy9nY2MvdHJ1bmsvbGliYmFja3RyYWNlLyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFu ayI+aHR0cHM6Ly9nY2MuZ251Lm9yZy92aWV3Y3ZzL2djYy90cnVuay9saWJiYWNrdHJhY2UvPC9h PjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48ZGl2PkkgcmVhbGx5IGRvLiBOb3Qgb25seSBm b3IgbG9nZ2luZyBhZnRlciBzZWdtZW50YXRpb24gZmF1bHQsIGJ1dCBhbHNvIGZvciB3YXRjaGRv ZyBmZWF0dXJlOiBwcmludCBzdGFjayB0cmFjZSBpZiBwcm9ncmFtIHN0dWNrIHNvbWV3aGVyZSBh bmQgY291bGQgbm90IHJld2luZCBTSUdBTFJNIHRpbWVvdXQgaW4gdGltZS48L2Rpdj48ZGl2Pjxi cj48L2Rpdj48ZGl2PkkgaGF2ZSBmb3VuZCBzdGFuZGFsb25lIGZvcmsgb2YgbGliYmFja3RyYWNl ICg8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vRXJ3YW5MZWdyYW5kL2xpYmJhY2t0cmFjZV8i Pmh0dHBzOi8vZ2l0aHViLmNvbS9FcndhbkxlZ3JhbmQvbGliYmFja3RyYWNlPC9hPikgYW5kIHdp bGwgdHJ5IGl0LiBUaGFuayB5b3UuwqA8YnI+PC9kaXY+PGRpdj7CoDwvZGl2PjxibG9ja3F1b3Rl IGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0 OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPgpJZiB5b3UganVzdCB3YW50IHRvIGdl dCBhIGdvb2QgYmFja3RyYWNlIHdoZW4geW91IGdldCBhIFNJR1NFR1Ygb3Igb3RoZXI8YnI+CmZh dGFsIHNpZ25hbCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGNhbGwgZXUtc3RhY2sgLVAgVElEIG9u IHlvdXJzZWxmLjxicj4KZm9yayBhbmQgZXhlYyBhcmUgc2lnbmFsIHNhZmUuIEFuZCB0aGVuIHlv dSBkb24mIzM5O3QgaGF2ZSB0byB0cnkgdG8gZGVhbDxicj4Kd2l0aCBhIHBvc3NpYmx5IGNvcnJ1 cHQgcHJvZ3JhbS48YnI+PC9ibG9ja3F1b3RlPjxkaXY+PGJyPjwvZGl2PjxkaXY+SXQgd291bGQg YmUgZmluZSBmb3IgU0lHU0VHViBjYXNlLCBidXQgbm90IGZvciB3YXRjaGRvZyAoU0lHQUxSTSkg Y2FzZS7CoDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhhbmtzIGFnYWluIGZvciByYXBpZCBh bnN3ZXIhPC9kaXY+PC9kaXY+PC9kaXY+Cg== --===============0052876181497422555==--