Qt 5.11.0使用gdb遠端部署和除錯
操作環境
PC: OS Debian9.4.0, Qt 5.11.0, IP: 192.168.1.10
BeagleBone Black: Debian 9.3.0, IP: 192.168.1.20
前言
在嵌入式開發中,如何使用QT去除錯程式是很重要的。除錯無非分為以下幾種方式:
- 最初級的方式就是編譯目標程式,然後拷貝到開發板,通過printf函式輸出一些除錯資訊來除錯程式。
- 移植GDB,編譯完目標程式後,在開發板執行GDB server,然後使用QT遠端除錯。
- 使用QT一鍵遠端除錯程式,需要將目標程式拷貝到開發板。
方式1不僅麻煩還很難找出問題。方式2雖然可以除錯,但很麻煩,每次編譯完程式後都得拷貝到開發板。第3種方式靈活簡單。
步驟
1.安裝gdb
- PC安裝GNU多架構偵錯程式:
apt-get install gdb-multiarch
[email protected]:~$ gdb --version
GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
...
- BBB安裝gdbserver
apt-get install gdbserver
[email protected]:~/demo$ gdbserver --version
GNU gdbserver (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
gdbserver is free software, covered by the GNU General Public License.
This gdbserver was configured as "arm-linux-gnueabihf"
2.配置Qt Kit
- 根據交叉編譯的qmake新增Qt Version。參考此部落格
- 編譯器
- 除錯工具
- 配置Kit
- 配置Device
Qt Creator可以通過Device中設定的SSH將可執行檔案上傳到BBB上。
點選右側的Test選單可以查詢設定的埠範圍內可用的埠。
- 配置sysroot(不清楚作用)
3.測試
- PC IP: 192.168.1.10
- BBB IP: 192.168.1.20
3.1配置Qt Projects
其中工程檔案中需要新增以下內容:
target.files = armtest1 # your local executable file.
target.path = /home/devin/gdb # executable file's path on your device(beaglebone). there is no slash in the end of the path.
INSTALLS += target
3.2 部署可執行檔案
- Deploy或者Run之後BBB的 /home/devin/gdb 目錄中會多出一個可執行檔案armtest1 (需要提前配置好Kit中的Device)。
上傳檔案時可能會出現下列錯誤:
error: Upload of file “/home/devin/qtdemo/build-armtest2-Beaglebone_Kit-Debug/armtest1” failed. The server said: “Permission denied”.
可能原因是Device選項卡中設定的SSH登入使用者沒有許可權訪問armtest1.pro檔案中設定的target.path路徑,導致無法上傳檔案。
- 或者使用sftp將可執行檔案armtest1手動傳輸到BBB上
3.3 一鍵除錯
- ssh登入BBB後使用xhost命令允許別的使用者(Device中設定的root使用者)啟動的圖形程式將圖形顯示在當前螢幕上(BBB預設登入使用者為debian)。可以修改預設登入使用者。
debian@beaglebone:~$ echo $DISPLAY
debian@beaglebone:~$ xhost
xhost: unable to open display ""
debian@beaglebone:~$ export DISPLAY=:0.0
debian@beaglebone:~$ xhost
access control enabled, only authorized clients can connect
SI:localuser:debian
debian@beaglebone:~$ xhost +
access control disabled, clients can connect from any host
- 使用 F5 / F10除錯,注意在3.1中設定DISPLAY環境變數。
3.4 BBB上開啟gdbserver手動除錯
- 埠號和下圖中設定的埠號保持一致,此處port=12345
命令格式: gdbserver <主機IP>:<埠> <可執行程式>
[email protected]:~/demo$ gdbserver :12345 armtest1
Process armtest1 created; pid = 19835
Listening on port 12345
//下面為連線上之後的提示
Remote debugging from host 192.168.1.10
...
- 配置 Debug/Start Debugging/Attach to running debug server,點選OK
- 記得先新增斷點(Break at “main”表示在main函式斷點)
- F10單步除錯,F5全速執行
參考資料
相關推薦
Qt 5.11.0使用gdb遠端部署和除錯
操作環境 PC: OS Debian9.4.0, Qt 5.11.0, IP: 192.168.1.10 BeagleBone Black: Debian 9.3.0, IP:
idea(8) 遠端部署和遠端除錯
https://stackoverflow.com/questions/29842516/error-running-intellij-debugger-unable-to-open-debugger-port-java-net-connect http://blog.csdn.ne
qt glut 和 qt opengl (qt 5.11.1) 超詳細的qt opengl環境搭建
作者: 飛劍神 網址:www.feijianshen.com 郵箱: [email protected] 本人:百度雲:wrzfeijianshen 本部落格共開下載部落格和其中用到的工具連結地址: 課件在這裡哦: https://github.com/wrzfe
OPenCV筆記(3.4.1環境配置與擴充套件包編譯 vs 2017 和Qt 5.11)
1.官網 https://opencv.org/2.下載標準包 https://opencv.org/releases.html下載winpack之後解壓,配置環境變數,此方法只能使用標準的釋出庫,一些特別的庫無法使用,比如人臉識別的庫3.如果需要人臉識別等特殊的庫3.41版
Ubuntu16.04安裝qt-5.11.1
參考、推薦和致謝:https://blog.csdn.net/future_ai/article/details/81698629。 更詳細內容:https://qtguide.ustclug.org/ch01-02.htm 系統:ubuntu16.04 QT :qt-5.11.1
C++:Qt 5.11的安裝
一、Qt的獲取及其學習教程 Qt安裝包的下載地址:http://download.qt.io/archive/qt/ Qt的官方學習教程:http://doc.qt.io/ 二、在Windows 7系統中安裝Qt 5.11.2 Qt的版本會更新得比較快,其更新的一般形式通常為
解決Ubuntu16.04 Qt 5.11.1 Creator (enterprise) 無法輸入中文的問題
1.安裝fcitx-frontend-qt5 $ sudo apt-get install fcitx-frontend-qt5 2.找到 libfcitxplatforminputcontextplugin.so $ cd /usr/lib/x8
QT 5.11.2靜態編譯configure.bat
configure.bat -static -release -confirm-license -opensource -opengl desktop -platform win32-g++ -prefix "D:\Qt\Qt5.11.2\5.11.2\m
Ubuntu 16.04 安裝 Qt 5.11
1. 下載安裝包 可以去下載連結找到合適版本的Qt安裝包進行下載,我這次使用的版本是5.11.2,下載如下圖所示的連結。 下載完成以後進入到下載目錄,設定安裝包的許可權。 cd Download su
PyCharm進行遠端開發和除錯
你是否經常要在Windows 7或MAC OS X上面開發Python或Web應用程式,但是它們最後需要在linux上面來執行呢? 我們經常會碰到開發時沒有問題但是到了正式的Linux環境下面卻出現問題。那麼怎樣保證開發環境跟執行環境的一致呢?通常有兩種方法解決。一種是使用PyCharm內建支援的Vagran
Ubuntu 16.04 + Qt 5.11 +opencv 3.4完美配置(親測,最簡單完美的方法)
目錄 4. 測試 1. 安裝Qt 在Ubuntu下安裝qt非常簡單,可以參考下面的安裝方法: 2. 安裝opencv3.4 從原始碼安裝最新版的opencv可以解決大部分的相容性問題。 2.1 下載最新原始碼 解壓zip格式的原
QT4.8.5+qt-vs-addin-1.1.11+VS2010安裝配置和QT工程的新建和載入
1.下載windows下的QT庫 QT4.8.5 for vs2010: 2.下載VS2010 下的QT外掛: 3.安裝QT庫:點選 qt-win-opensource-4.8.5-vs2010.exe; 一路Next~~ 選中 I acceot the
Oracle 11.2.0.4.0 Dataguard部署和日常維護(6)-Active dataguard
ima file man log role 主備 span for current 1. 檢查主備庫的狀態 on primary column DATABASE_ROLE format a20 column OPEN_MODE format a15 column PR
ELK 完整部署和使用 - 每天5分鐘玩轉 Docker 容器技術(90)
docker 教程 容器 上一節已經部署了容器化的 ELK,本節討論如何將日誌導入 ELK 並進行圖形化展示。幾乎所有的軟件和應用都有自己的日誌文件,容器也不例外。前面我們已經知道 Docker 會將容器日誌記錄到 /var/lib/docker/containers/<contariner
Qt 5中信號和槽的新語法
既然 自己的 edi val 接下來 很多 工具包 code 所有者 QT 是一個跨平臺的 C++ GUI 應用構架,它提供了豐富的窗口部件集,具有面向對象、易於擴展、真正的組件編程等特點,更為引人註目的是目前 Linux 上最為流行的 KDE 桌面環境就是建立在 QT 庫
linux下終端11選5平臺出租常用命令和vi命令修改文件及保存的使用方法
首開 mman bin 軟件包管理 系統啟動 左右移動 包含 地方 執行 首先11選5平臺出租 haozbbs.com Q1446595067介紹一下Ubuntu下各個目錄的一般作用: /這就是根目錄,一臺電腦有且只有一個根目錄,所有的文件都是從這裏開始的。舉個例子:當
ubuntu kylin 18.04 安裝 Qt Creator 5.11
++ 彈出 x64 Opens 成功 down creator releases ubuntu 首先,去官網(https://download.qt.io/official_releases/qt/ )下載Qt Creator的安裝包。 我下載的是5.11.1版本文件:qt
使用Jenkins實現CocosCreator的自動化構建和釋出(5)-增加SSH遠端操作
前面文章講述瞭如何實現CocosCreator的自動化構建和釋出,不過使用次數多了會發現一個問題:就是如果我們在Creator的構建選項中選定了“MD5”,則每次構建都會生成新的檔名,那麼每一次上傳新版本到伺服器時,因為新檔案不會覆蓋舊檔案,就會導致釋出目錄下的檔案越來越多。所以我們還希
11 部署和執行
部署和執行 執行多個Tornado例項 網頁響應不是特別的計算密集型處理 多個例項充分利用 CPU 多埠怎麼處理 使用Supervisor監控Tornado程序 安裝(注意看是否需要指定使用python2版本) (tudo) [email
如何在CentOS 7.5、Ubuntu 18.04和Debian 9中安裝Golang 1.11
Golang 是谷歌開發的一種程式語言。由於它的多功能性、簡單性和可靠性, Golang 已經成為開源社群中最受歡迎的程式語言之一。 準備: 一個虛擬機器中的 CentOS 7 , Ubuntu 18.04 LTS ,或者 Debian 9 擴充套件