您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么使用Vscode-insiders的docker擴展”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
VsCode是微軟第一款支持Linux的輕量級代碼編輯器,其功能介于編輯器與IDE之間,但更傾向于一個編輯器。Vscode有兩個版本,藍色的Vscode是非常穩定的發行版本,Vscode-insiders,相當于Bate版本,測試版,會有一些新的功能。
本文使用Vscode-insiders 的Docker 和Remote - Containers 擴展,可以便捷地調試Apollo項目,而藍色的Vscode不具備該調試功能。
Vscode-insiders有兩種安裝方式,分別是Apt安裝和Deb包安裝。Vscode-insiders 和藍色的Vscode 可以同時使用,安裝Vscode-insiders 無需卸載藍色的Vscode。
Apt方式安裝:
1sudo apt-get update 2sudo apt-get install code-insiders
Deb方式安裝:
在 https://code.visualstudio.com/insiders/ 下載 Vscode-insiders 的Deb包,
1sudo dpkg -i code-insiders_xxx.deb
運行Vscode-insiders,在擴展欄中搜索 Docker 和 Remote - Containers 擴展并安裝。
在 https://code.visualstudio.com/docs/remote/containers 中可查看Docker擴展的詳細教程。
▲Docker安裝
▲Remote - Containers安裝
由于Apollo項目是用C++進行開發,所以還需安裝C++擴展。
▲C++擴展
安裝完畢后如圖所示:
▲Docker 和 Remote - Containers 安裝圖示
關于如何構建 Apollo3.5或5.0 已在Ubuntu14.04搭建GPU版本的百度Apollo3.5自動駕駛平臺詳細介紹。
1cd apollo 2bash docker/scripts/dev_start.sh 3bash docker/scripts/dev_into.sh 4bash scripts/bootstrap.sh
Apollo Docker 啟動后,打開Vscode-insiders,選中Docker圖標,出現Apollo鏡像,如圖所示:
▲啟動Vscode-insiders
右鍵選中Apolloauto/apollo:dev-x86_64-xxx 鏡像,選中Attach visual studio code(藍色的Vscode即使安裝了Docker擴展也沒有此選項)
▲選中Attach visual studio code
此時Vscode會自動打開一個新窗口加載Container,若左下角出現 Attached container 字樣,則表示 Vscode 已加載完成。
▲Vscode 加載完成
然后選擇 【打開文件夾】,鍵入 /apollo/ 后確定。
▲鍵入 /apollo/
此時Vscode-insiders 已經加載 Apollo 鏡像中的/apollo 文件夾,接著打開擴展欄,在Docker中安裝C++ 擴展(部分電腦會自動安裝),安裝后點擊【重新加載】。
▲在Docker中安裝C++ 擴展
加載完成后即配置好環境。
▲加載完成
完成環境配置后,選擇【調試】-【打開配置】,自動打開 /Apollo/.vscode/launch.json 配置文件:
根據自己的需要,修改 Program 和 Args 參數,即可調試Apollo單元測試程序,以下給出一個例子:
1{ 2 "version": "0.2.0", 3 "configurations": [ 4 5 { 6 "name": "(gdb) Launch", 7 "type": "cppdbg", 8 "request": "launch", 9 "program": "/apollo/bazel-bin/modules/perception/camera/test/camera_lib_lane_postprocessor_denseline_lane_postprocessor_test", 10 "args": [], 11 "stopAtEntry": false, 12 "cwd": "${workspaceFolder}", 13 "environment": [], 14 "externalConsole": false, 15 "MIMode": "gdb", 16 "setupCommands": [ 17 { 18 "description": "Enable pretty-printing for gdb", 19 "text": "-enable-pretty-printing", 20 "ignoreFailures": true 21 } 22 ] 23 } 24 ] 25}
打開對應的測試代碼文件,加入斷點,選擇【調試】-【啟動調試】,即可像其他IDE進行方便的代碼調試。
F10:單步調試
F11:單步跳入
Shift+F11:單步跳出
左側可直觀地看到堆棧和變量信息:
▲堆棧和變量信息
修改代碼后在Docker中運行Build,完成編譯后即可再次啟動調試。
Apollo開發者社區公眾號曾發過的《開發者說 | Apollo 3.5各功能模塊啟動過程解析》,詳細地介紹了Apollo3.5 的模塊啟動過程。
通過在 /apollo/cyber/mainboard/mainboard.cc 加入斷點,可以詳細地看到模塊的啟動過程(如何加載Dag和Conf文件進行初始化),極大地方便了開發者理解和調試Apollo模塊。
PS: Apollo3.0及以前的版本仍然可用此種方式調試,只需把 Program 改成Ros可執行程序路徑,以及 Args改成對應的參數。
1{ 2 "version": "0.2.0", 3 "configurations": [ 4 5 { 6 "name": "(gdb) Launch", 7 "type": "cppdbg", 8 "request": "launch", 9 "program": "/apollo/bazel-bin/cyber/mainboard", 10 "args": ["-d","/apollo/modules/drivers/gnss/dag/gnss.dag"], 11 "stopAtEntry": false, 12 "cwd": "${workspaceFolder}", 13 "environment": [], 14 "externalConsole": false, 15 "MIMode": "gdb", 16 "setupCommands": [ 17 { 18 "description": "Enable pretty-printing for gdb", 19 "text": "-enable-pretty-printing", 20 "ignoreFailures": true 21 } 22 ] 23 } 24 ] 25}
▲調試Apollo板塊
“怎么使用Vscode-insiders的docker擴展”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。