請教在Linux下自由軟體的開發除錯問題 [論壇 - Ubuntu 哈啦]


正在瀏覽:   2 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



請教在Linux下自由軟體的開發除錯問題
會員一級
註冊日期:
1/9 11:48:42
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 0
MP : 0 / 1
EXP: 2
離線
各位大大,

小弟長久以來一直有個問題, 最近終於想把它搞懂, 所以在此請教.


先說我的背景, 早年使用MS Dos時代我有跟到, 所以命令列模式的使用電腦方法我很有經驗, 到現在MS Dos的一些命令我都還記得. 後來進入Windows時代, 基本上一路跟進, 多年來寫程式(C/C++)有少部份時間有在Unix系統上用vi寫c程式, 其他絕大部份都是使用GUI(Visual Studio).

現在進入主題, 最近因為一些需求, 所以有在研究Linux的Open source程式. 我的主要問題是, 在Windows下使用Visual Studio, 去看別人的Open Source程式, 絕大部份都是會給整個專案, 只要用Visual Studio打開.sln檔, Visual Studio圖型介面會把整個檔案階層排好, 要找副程式也只要用滑鼠點幾下就自動跳到該檔案, 要追蹤程式也是很容易跟清楚, 我就不贅述了.

但是我去看Linux下的Open Source專案, 編譯部份我就不提了, 主要是要追蹤程式, 我看好像大家都是用GDB在命令列模式下打一堆指令, 我的疑問是這跟在Windows下用Visual Studio做比較, 效率不會太低嗎? (比如說要找到某個副程式在那, 我都是用人工搜尋檔案的方式慢慢找, 找到地老天荒累的要死) 還是我對在Linux下追蹤除錯Open Source專案的方法有誤? 有其他更好的方法?

ps. 我不是來戰Linux跟Windows那個好, 這麼多年了, 我想兩者是並存, 沒有絕對誰好誰壞的問題

1/9 12:39:46
應用擴展 工具箱
回覆: 請教在Linux下自由軟體的開發除錯問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 34
HP : 169 / 845
MP : 571 / 18289
EXP: 83
離線
我沒有很投入在寫程式,所以我只有初步的認識,了解的並不深入,
都是碰到問題,下載「Debian Source Package」來觀看,舉例最近一篇討論
其實我也都是純文字編輯器和打指令追程式碼,Orz...
我目前比較常用的純文字編輯器是「atom」或「vim」,
以前則使用「kate」或是「Sublime Text」,之前有討論過相關的議題
對我來說,在這部份,我需要的功能,主要是「檔案系統的樹狀結構」和「Find in files and Replace」,就行了。
但我同意你說的,用IDE來找CODE確實是比較方便
只不過有時候不知道怎麼設定IDE,我就沒再去花時間研究了,我現在比較少折騰這些設定了。
我也蠻想聽聽其他人分享他們的操作經驗的

目前我想到的IDE,您可以自行研究看看,我猜不見得每個專案都能直接匯入。

* kdevelop (Homepage) (它也有支援「PHP」的專案)。
* qtcreator (Homepage)。
* anjuta (Homepage)。

以上三個目前沒常在使用,只是提到這部份的議題,我就會先聯想到上面三個IDE。

寫著寫著又聯想到一個比較新的IDE

* gnome-builder (Homepage)

應該還有其他的IDE,像是「NetBeans」,「Eclipse」...就不再列了。

然後我聯想到這幾天找資料才看到的「文章」,是關於在「vim」底下的開發設定
不過我沒實際去測試就是了,只是聯想到有看到這樣的文章,所以貼出來參考。

我目前了解到的,在Linux底下,大部分的專案,是透過「Makefile」來輔助編譯,

可以參考

* 鳥哥的 Linux 私房菜 / 第二十一章、軟體安裝:原始碼與 Tarball
* 用Open Source工具開發軟體

所以我猜上面的IDE可能是依據「Makefile」來匯入(或是根據其他的檔)。

而有另外一種比較常見的是,是可以轉成「Makefile」的工具,例如「cmake」或是「qmake」。

而「gnome」現在則是採用meson (Homepage)」,不過後端不是轉成「Makefile」,是採用「ninja (Homepage)」。

例如最近一個「討論案例」。

以前在探索「Build Tool」時,還發現一個吸引我注意的一個專案「xmake」,順手紀錄一下連結。

================================================================================

在「Debian」的系統,建議需要了解一些套件操作的概念,也有助於除錯,
一些討論案例,以前我紀錄在「[索引] 套件操作實務」。

================================================================================

另外附上,我偶而想到會去逛的網址,因為很多東西我還沒學會

* https://www.youtube.com/channel/UCIm-u7l65hp5jboSJrB7U5w/videos
* https://github.com/tinyclub/open-c-book

================================================================================

以上我初步的認識,提供參考

報告完畢


1/9 14:10:58
應用擴展 工具箱
回覆: 請教在Linux下自由軟體的開發除錯問題
會員二級
註冊日期:
2011/8/10 22:09
所屬群組:
已註冊使用者
等級: 5
HP : 0 / 104
MP : 13 / 2481
EXP: 19
離線
據我使用open source函式庫的經驗,缺少好用的開發工具和說明文件一直是讓我頭痛的問題,open source軟體作者好像很少想用輔助工具讓工作更省事,都喜歡用硬幹的方法寫程式,讓開發open source軟體的門檻變得很高。

我主要用下面兩個軟體


自己寫遊戲用的是Code::Blocks,主要好處是可在Windows和Linux兩平台執行,因為我有同一套程式要在Windows和Linux編譯的需求。
可是它解析的準確度有點差,例如有時候不能正確解析macro,用#define區分不同平台的部分(Windows的_WIN32和Linux的linux),在Windows上有時還是會搜尋到Linux專用的部分,有時還是得靠人工硬幹的方式。
跟debugger的整合好像並不好,至少它就不支援VC的debug工具,不過個人很少用debugger追蹤程式,一般都用其他方法除錯。

試過幾個IDE像是CodeLite、NetBeans、QDevelop,都或多或少有問題,沒有完全符合需求的,只能比較後選一個問題最小的。


寫只有一個檔案的小程式,或是其他程式語言(如HLSL、GLSL、Python)則用Visual Studio Code,有Windows和Linux的版本。
雖然不是完整的IDE但有尋找函式定義、打函式時自動跳函式宣告等功能,而且準確度高。微軟開發IDE的技術算很不錯的,這軟體讓我在Linux上也可使用部分Visual Studio的功能。

前陣子修改GIMP和Inkscape的程式就面臨缺乏工具的問題,它們根本沒提供IDE專案檔,還好Visual Studio Code可以讀取Git的資料整理檔案讓工作方便很多,不然我無從入手。
但class繼承關係就連Visual Studio Code也不能自動整理出來了,只能看程式碼自己撰寫文件。

1/9 18:21:28
應用擴展 工具箱
回覆: 請教在Linux下自由軟體的開發除錯問題
會員一級
註冊日期:
1/9 11:48:42
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 0
MP : 0 / 1
EXP: 2
離線
謝謝上面兩位先進的回覆. 看來我猜想的沒錯, Linux社群是一堆nerd. Nerd心態就是越原始越好, 表示我比別人厲害 (我以前也是nerd之一). 很好奇, 這樣的開發環境, 對於那些大型複雜軟體是怎麼開發出來的?! 光是打那一堆debug command就累死人了! 真是佩服(真心地)!

1/14 9:34:51
應用擴展 工具箱
回覆: 請教在Linux下自由軟體的開發除錯問題
會員二級
註冊日期:
2017/3/23 10:15
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 143
MP : 20 / 1044
EXP: 75
離線
我覺得 Linux 的開發環境工具 都不是很好用

我剛剛裝了 anjuta 測試一下,也是沒有即時防呆的功能 也是要 make 後才知道哪裡寫錯ˇˇ

我這兩天放上來的 opemu 這個原本是寫給 macOS 的 在 xcode 底下寫的
xcode 防呆措施做的很好 可以即時提示 =_=
https://www.insanelymac.com/forum/topic/329704-opcode-emulator-opemu-plug-in-project/

linux 版本是移植過來的 也是用 Sublime Text 找尋替換 手工修改

5/27 20:53:07
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.