---
# System prepended metadata

title: '[企劃書]20250313-SIGSEGV時在做什麼？有沒有GDB？可以來除錯嗎？'
tags: [GDB, 113 學年, 社課, 企劃書]

---

---
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 場地復原

#### 活動預期效益

- 個人方面： 提升程式除錯能力，培養獨立解決問題的能力，增強對開源工具的認識與應用。
- 社團方面： 提升社課品質與吸引力，擴大社員的技術廣度，強化社團在程式開發領域的影響力。
- 學校方面： 提升學生在程式設計方面的實作能力，培養更多具備獨立思考與問題解決能力的人才。
- 社會方面： 鼓勵開源工具的使用與推廣，促進軟體開發技術的交流與進步。
