How to debug shared librarys with GDB?

Source: Internet
Author: User
Tags sigint signal signal handler

The simplest method (maybe the only method) is:

1. Set a break point in main ()

2. List the source code or symbol name of the shared library, and set the break point.

 

You cocould use add-symbol-file to load the symbols of the shared library. use LDD, you can see the link address of this shared library, this is the address for the add-symbol-file command. but even you specify the correct address, because at that time, this library has not been loaded in memory, you can not set a break point. it will prompt such error "cannot access memory at address 0x00xx00xx ".

 

Another way, you can set a signal handler in GDB, e.g ., (GDB) handle SIGINT stop. then when you press Ctrl + C, the debugger will intercept the SIGINT signal to debuging application, then it will stop, you can set break point at that time. use kill-l, you coshould list all signals in your system.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.