[C/C++] GNU Debuger - gdb

  • gdb
  • 平常使用gcc做為編譯器開發程式時,遇到segmentation fault多半是自行除錯,這裡可以使用gdb來縮短除錯的時間,以[C/C++] Stack Overflow這一篇的程式作為範例,編譯方式如下:

    gcc -g- o stackoverflow stackoverflow.c

    然後執行gdb並且附帶專案名稱:

    gdb stackoverflow

    接著你可以直接先執行run

    run

    你就會看到如下的錯誤:

    Starting program: /home/xinyu/Desktop/stackoverflow
    In main()...
    In func1()...

    Program received signal SIGSEGV, Segmentation fault.
    func2 () at stackoverflow.c:26
    26 printf("In func2()...\n");

    這時你可以使用break指令來設定break point

    break 20

    重新在執行一次run,就會在程式碼20行的位置停下來,你可以輸入下面的指令來看更多的gdb指令參數:

    help all

    離開gdb

    q

No comments:

Post a Comment

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas