# GDB-Learning **Repository Path**: linker99/GDB-Learning ## Basic Information - **Project Name**: GDB-Learning - **Description**: GDB 学习,及根据大牛Liam Huang的文章,模仿的一个GDB调试的demo - **Primary Language**: Unknown - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-06-30 - **Last Updated**: 2023-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GDB-Learning GDB 学习,及根据大牛Liam Huang的文章,模仿的一个GDB调试的demo 最近再学习GDB ,找了全网没找到很好的例子和教程,直到找到Liam Huang大牛的一篇文章: http://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html 网上也有中文翻译好的,还有个比较好的视频: Give me 15 minutes and I’ll change your view of GDB(视频在youtube上,方便大家我下载下来了:在video目录下) GDB入门教程 https://vimjc.com/categories/gdb/ /*******分割线,好好看过上面的文章和视频再看下面*********/ 下面试来部署调试环境的: 主要用了sample和led两个动态库: 在Demo/sample和led目录下分别执行以下指令: mkdir build cd build cmake .. make sudo make install 并在pysample和pyled目录下执行: python setup.py build(python版本2.7) 并将../pysample/build/lib.linux-x86_64-2.7/sam.so ../pyled/build/lib.linux-x86_64-2.7/led.so两个动态库拷贝到python的第三方库目录下: /usr/local/lib/python2.7/dist-packages 这样就可以在python调用sample和led这两个库。 然后就可以运行demo.py(在Demo文件夹下)了。 运行demo.py很快就可以看到Segmentation fault,就可以照着大牛的思路进行找错了。 当然,我写的这个Demo代码很简单,一看代码就知道是哪里错了。 所以推荐大家,假设sample和led这两个库代码量很大,并且不要一上来就看代码。 然后就是编译选项,由于没搞懂deb包怎么生成,所以要想在GDB中看到代码, 只能通过sample和led两个动态库的cmakelist中的SET(CMAKE_BUILD_TYPE Debug)放开。