Raspberry Pi Zero W解決除錯資訊不足的問題(以libzmq-dev為例)
最近在參照ofollow,noindex" target="_blank">樹莓派實時系統下指令碼語言的選擇(應當使用Lua而不是Python)
呼叫除錯lua-zmq
的時候,發現使用PAIR
模式進行執行緒之間通訊,長時間執行後會出現死鎖的情況。
當我們需要跟蹤問題的時候,使用apt-get
安裝的版本缺乏必要的除錯資訊。
我們可以手工安裝除錯資訊包,如下:
$ sudo apt install libzmq-dbg
我們也可以從原始碼重新編譯一份,如下:
# 開啟原始碼的源 $ sudo sed -i "s/^#deb-src/deb-src/g" /etc/apt/sources.list # 安裝必要的編譯工具 $ sudo apt-get install build-essential devscripts lintian $ cd ~ # 下載原始碼,此處不可sudo,否則後續操作會出現許可權問題 $ apt-get source libzmq-dev $ cd zeromq*/ # 安裝依賴項 $ sudo apt-get install libpgm-dev $ sudo apt-get install uuid-dev $ debuild -us -uc -b $ cd .. $ sudo dpkg -i libzmq-dev*.deb $ sudo dpkg -i libzmq-dbg*.deb $ sudo ldconfig
以上是針對Debian
安裝包來進行的處理,然而對於luarocks
安裝的外掛來說,預設luarocks
是不能編譯除錯版本的,此時就需要我們手工編譯了。我們以lua-zmq
為例子,參考如下:
$ sudo apt-get -y install cmake $ git clone git://github.com/Neopallium/lua-zmq.git $ cd lua-zmq ; mkdir build ; cd build $ cmake .. -DCMAKE_BUILD_TYPE=Debug $ make $ sudo make install