Introduction to debugging

1,183 views
1,116 views

Published on

Introduce how to use Dev-C++ 5.3.0 to debug source code

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,183
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction to debugging

  1. 1. Introduction to debugging Appendix C of Introduction to C Programming Author: Peter PH Chang S
  2. 2. 你是怎麼Debug的? S
  3. 3. 經典的除錯方式S printf debugS IDE裡的除錯工具S gdbS 其他的除錯方式
  4. 4. printf Debug S
  5. 5. 什麼是printf debugS 就是插入printf,把你想要印的資訊印出來而已S 看似無用,但是很多時候真的只能用printf來除錯S 基本中的基本,不論如何一定要會
  6. 6. 進階printf debugS 用fprintf把輸入內容導到檔案S __FUNCTION__ S printf(“in %s function, it crashed.n”, __FUNCTION__);S Macro S #define errexit(format,arg...) exit(printf(format,##arg)) S #define errexit2(format,arg...) do{printf(“In %sn”, __FUNCTION__); printf(format,##arg); exit(1);}while(0)
  7. 7. bug-1.c
  8. 8. bug-2.c
  9. 9. bug-3.c
  10. 10. bug-4.c
  11. 11. Demo
  12. 12. IDE裡的除錯工具 S
  13. 13. 除錯時會想知道的東西?S 某某變數現在的值是多少?S 程式到底是怎麼走的? S 程式永遠不會照你所想的走,只會照你所寫的走S 程式崩潰在哪一行?
  14. 14. IDE裡的除錯工具S 以MS Windows下的Dev C++ 5.3.0.1為例S Code::Block和MS Visual Studio也都有自己的除錯工具, 有興趣的同學可以自行研究
  15. 15. Where is it?
  16. 16. How to use?S 先用F9或F11編譯過,再於行號處點一下滑鼠左鍵,插入 Break Point,讓程式執行之後,可以在此中斷,先暫停在此
  17. 17. How to use?S 再按下F5啟動除錯模式
  18. 18. 進入除錯模式
  19. 19. Stop here
  20. 20. Its control interface
  21. 21. Add watch value
  22. 22. Add watch point
  23. 23. Add watch point
  24. 24. 單步執行
  25. 25. 單步執行
  26. 26. 單步執行
  27. 27. 單步執行
  28. 28. 單步執行
  29. 29. 單步執行
  30. 30. 單步執行
  31. 31. 單步執行
  32. 32. 單步執行
  33. 33. 單步執行
  34. 34. 單步執行
  35. 35. 單步執行
  36. 36. 單步執行
  37. 37. 單步執行
  38. 38. 單步執行
  39. 39. 單步執行
  40. 40. 單步執行
  41. 41. 其他指令
  42. 42. CPU Status
  43. 43. 其他指令
  44. 44. bug-2.c
  45. 45. bug-3.c
  46. 46. Demo
  47. 47. GDB S
  48. 48. gdbS GNU DebuggerS GNU GPLv2授權開放原始碼除錯器S Dev C++、Code::Block、Eclipse甚至Xcode的除錯器都是 gdbS 可參考此網頁教學基本gdb使用: S http://nthusslab.blogspot.tw/2011/09/debugcgdb.html
  49. 49. 其他的除錯方式 S
  50. 50. 其他的除錯方式S Hardware debuggerS 純粹利用HardwareS Debug by simulatorS Trace codeS Talk to your friend!

×