手工編譯GDB調試Python程序


GDB在7.0版本之后,加入了調試python程序的支持(https://docs.python.org/devguide/gdb.html)。通常情況下,按照http://blog.csdn.net/liangzhao_jay/article/details/47807183中的步驟就可以快速配置好python的GDB調試環境。

但是如果機器上的Python環境不是使用包管理工具自動安裝的,或者包管理工具安裝的GDB版本太老或沒有python調試的支持,那么,就不得不手工編譯GDB了。我在Ubuntu 15.10上編譯GDB時遇到了一些坑,記下來備查。

步驟如下:

  1. apt-get -y install texinfo python3.5-dbg
  2. 下載GDB wget http://ftp.gnu.org/gnu/gdb/gdb-7.11.1.tar.gz
  3. 解壓后進入目錄 tar zxf gdb-7.11.1.tar.gz && cd gdb-7.11.1
  4. 執行./configure --with-python
  5. make && make install,這樣gdb就被安裝到/usr/local/bin目錄下了
  6. 拷貝如下代碼到test.py
import time

time.sleep(10000)

  7. 執行python3 test.py &

  8. gdb python3 <pid of test.py>  

  9. 輸入py-bt就可以看到python調用棧了。如果此時不能看到python調用棧,執行如下腳本

#!/bin/bash

cp -r /usr/lib/debug /usr/local/lib/
mkdir -p /usr/local/lib/debug/usr/local/bin
cp /usr/local/lib/debug/usr/bin/* /usr/local/lib/debug/usr/local/bin

  

以下為完整的安裝腳本:

#!/bin/bash

apt-get update
apt-get -y install texinfo python3.5-dbg

wget http://ftp.gnu.org/gnu/gdb/gdb-7.11.1.tar.gz
tar zxf gdb-7.11.1.tar.gz
cd gdb-7.11.1

./configure --with-python
make && make install

cp -r /usr/lib/debug /usr/local/lib/
mkdir -p /usr/local/lib/debug/usr/local/bin
cp /usr/local/lib/debug/usr/bin/* /usr/local/lib/debug/usr/local/bin

rm -rf gdb-7.11.1
rm gdb-7.11.1.tar.gz

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM