簡體   English   中英

在Linux中調試C ++程序

[英]Debug C++ program in Linux

我寫了一個簡單的C ++程序,如下所示:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello.";
    return 0;
}

現在我想調試它。 那么它的命令是什么,所以我的控制權到達每一行?

您可以使用gdb

$ gdb hello

這將啟動gdb並提示您下一步該做什么。 next命令執行一行源並在下一行停止。

我發現了一個可能有用的基本GDB教程

不要忘記使用-g選項編譯源代碼。 像這樣: g++ -g helloWorld.cc這將創建一個a.out可執行文件。 您將能夠使用gdb ./a.out命令調試a.out exe。 您可以使用它的另一個工具是ddd,基本上是gdb的GUI。

祝好運

我一直認為emacs為gdb提供了一個非常友好的前端...

例如

  • %g ++ hello.cc -g -o hello
  • emacs hello.cc
  • [ 在Emacs中 ] Escape-x gdb
  • Emacs會說“運行gdb(像這樣):gdb”。
  • 添加二進制名稱(“hello”)。 (例如“運行gdb(像這樣):gdb hello”。)
  • 轉到hello.cc緩沖區。
  • 使用emacs命令'gud-break'在hello.cc緩沖區中設置gdb中的斷點。 (通常綁定到“Cx空間”。)
  • 轉到你的* gud-hello *緩沖區。
  • 在(gdb)提示符下鍵入“run”。
  • 使用[ N ] Next或[ S ] Step。 或者[ C ]繼續。 [ BT ] Backtrace也很有用。
  • 請注意hello.cc緩沖區最左側列中的小三角形會發生什么。

(這應該足以讓你開始.Emacs是emacs,總有更多的功能...)

如果你想要一些用戶友好的調試器,你可以使用Kdbg,它基本上是KDE的gdb前端。 也許沒有ddd那么強大,但更容易入手。

在我在瑞典做的C ++編程課程中,有一部分實驗室關於GNU調試器。 之后我從未使用它,但是這里有一篇論文解釋了基本用法,據我記得在第2章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM