使用slickedit调试开源代码
slickedit linux下的神器啊!
閱讀代碼堪比 source insight,調試代碼堪比 visual studio。
nginx優秀的web服務器。
因為其具有多進程、后臺進程的特點,因此本文選擇以此為例講解slickedit如何對開源代碼進行調試。
?
一、調試環境
ubuntu 14.04 + slickedit pro 2016 + nginx 1.7.9
?
二、編譯nginx
對nginx完成一次編譯,開源軟件的套路一般都是?./configure --xxx=xxx 后生成makefile,然后make即可。
注意這里生成的makefile很關鍵,后面slickedit啟動調試后會用到。
配置要使用debug版本,不同的開源軟件配置也不一樣。一般都是:不使用優化選項、不使用strip、加-g選項。
如果調試過程中,代碼行亂跳一般都是打開了優化選項。
?
三、建立工程
選擇用戶自定義makefile,其他根據向導完成即可。并導入nginx源碼。
菜單 project->project properties...
注意 這里有很多東西可以配置。
?
四、調試配置
雖然slickedit提供了界面進行配置,但是時靈時不靈的,很讓人頭疼。具體原因也沒有查明。
但是通過其工程的配置文件卻很好使。
在我們建立的工程目錄里有一個*.vpj文件,我這里是nginx.vpj。
修改方法如下:
到了這一步,我們終于可以啟動調試了。F9加斷點、F5啟動調試,快捷鍵的配置和vs基本一直。
啟動后的效果如下:
?
在build窗口(view->tool window->build)可以看到其執行過程
1、進入源碼路徑 執行了make。因此nginx要提前配置好生成makefile,否則這里就會提示找不到makefile。
? ? ? cd /work/sdb/opensrc/nginx/nginx-1.7.9
2、啟動調試命令。?
? ? ?/opt/slickedit-pro2016/bin/vsdebugio -port 8001 ?-prog
? ? ?/work/sdb/opensrc/nginx/bin/sbin/nginx -c? ?/work/sdb/opensrc/nginx/bin/conf/nginx.conf
這個2個關鍵的命令我們在第四步進行了配置。
如果啟動不成功,也可以根據這里的提示信息,進行問題的解決。
?
五、調試子進程
slickedit 默認是進入主進程進行調試,對于nginx這種多進程的模式,如果想要調試子進程,可以通過命令行進行修改。
slickedit封裝了gdb,支持gdb所有的命令。
鼠標單擊slickedit的底部就可是輸入命令:debug_send_command set follow-fork-mode child
debug_send_command 是slickedit的命令
set follow-fork-mode child 是gdb命令
如下圖:
?
六、調試運行中進程
菜單 debug->attach debugger->attach to ranning process (gdb)...
配置如下:
點擊ok,slickedit就attach到nginx work process這個進程了。
補充一點:
如果建立的slicedit工程,和makefile文件不在同一目錄,還需修改
*.vpj文件中 Name="Build" 欄目下的?RunFromDir字段 該路徑包含我們項目的makefile文件。
也就是說當按下F5進行調試時,先執行了build欄目下的命令,再執行debug欄目的下的命令。
全文完。
?
總結
以上是生活随笔為你收集整理的使用slickedit调试开源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3d立体相册特效html网页代码_新闻类
- 下一篇: 初学大数据之Python中5个最佳的数据