--- title: "[企劃書]20250313-SIGSEGV時在做什麼?有沒有GDB?可以來除錯嗎?" tags: - 企劃書 - 社課 - 113 學年 - GDB --- # 20250313-SIGSEGV時在做什麼?有沒有GDB?可以來除錯嗎? **活動名稱:** SIGSEGV時在做什麼?有沒有GDB?可以來除錯嗎? **起止時間:** 114/3/13 17:30~114/3/13 20:00 **活動地點:** 挺生大樓 200 教室 **參加人數:** 20 **主辦單位:** 大同大學科學開源服務社 **活動對象:** 本社社員、幹部 #### 核心能力 - [x] 問題解決:透過開源工具GDB,學習追蹤程式執行流程、檢視記憶體狀態,以有效率地處理程式漏洞和不可預期的錯誤。 - [x] 思維創新:不同於過往printf除錯方式,學習利用GDB等除錯工具,提升除錯效率與精準度。 - [ ] 關懷回饋: - [ ] 團隊合作: - [ ] 反思探索: **申請人所屬社團:** 大同大學科學開源服務社 #### 活動緣起 在程式開發的學習過程中,Debug(除錯)往往是最耗時且令人沮喪的環節。傳統教學較注重語法和解題,容易忽略除錯技巧的培養。當程式發生錯誤,例如出現`SIGSEGV`(Segmentation Fault)時,新手往往難以找到問題根源,只能靠運氣或土法煉鋼的方式除錯。 GDB (GNU Debugger) 是一款歷史悠久且功能強大的除錯工具,廣泛應用於軟體開發、系統分析、資訊安全等領域。透過 GDB,開發者可以逐步追蹤程式碼的執行流程、檢視變數內容、分析記憶體狀態,從而快速定位並解決問題。 本次社課希望引導社員及對程式開發有興趣的同學,認識 GDB 這個強大的工具,擺脫以往 printf 大法低效率的除錯方式,學會利用更有效率的工具來解決問題,提升程式開發能力。 #### 活動目的 1. 讓學員了解程式編譯的流程,並學會使用 `gcc` 編譯器指令與相關參數。 2. 使學員熟悉 GDB 的基本操作,例如:設定中斷點、檢視變數資訊、單步執行等。 3. 教導學員認識常見的系統錯誤訊息,並學習利用 ChatGPT 等工具輔助分析錯誤原因。 4. 培養學員獨立除錯的能力,使其在遇到程式錯誤時,能運用所學技巧自行修復。 #### 活動目標 1. 學員可以獨立使用 `gcc` 編譯 C/C++ 程式,並能根據需求調整編譯選項。 2. 學員可以熟練操作 GDB 的基本功能,並能運用 GDB 對程式進行除錯。 3. 學員可以理解常見的系統錯誤訊息,並能利用錯誤訊息初步判斷問題所在。 4. 學員在遇到程式錯誤時,能夠運用所學的編譯、除錯技巧,嘗試自行解決問題。 #### 活動內容 1. 17:30~18:00 場地布置、環境準備 (確認電腦是否安裝 GDB 等必要工具) 2. 18:00~18:10 開場 (介紹社團、講師,並說明本次課程內容與目標) 3. 18:10~19:45 課程內容 - gcc 編譯器介紹與實作 - gdb 基本操作教學與練習:斷點設定、檢視變數、單步執行、TUI 介面 - gdb 進階操作示範:記憶體傾印、腳本的使用 - 常見錯誤訊息解析與 ChatGPT 輔助除錯 4. 19:45~20:00 綜合演練與 QA (提供包含錯誤的程式碼,讓學員實際練習除錯) 5. 20:00~20:15 填寫回饋表單、課後討論 6. 20:15~21:00 場地復原 #### 活動預期效益 - 個人方面: 提升程式除錯能力,培養獨立解決問題的能力,增強對開源工具的認識與應用。 - 社團方面: 提升社課品質與吸引力,擴大社員的技術廣度,強化社團在程式開發領域的影響力。 - 學校方面: 提升學生在程式設計方面的實作能力,培養更多具備獨立思考與問題解決能力的人才。 - 社會方面: 鼓勵開源工具的使用與推廣,促進軟體開發技術的交流與進步。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up