【问题标题】:How do run executable c++ through terminal in debug mode?如何在调试模式下通过终端运行可执行 c++?
【发布时间】:2019-10-12 13:55:37
【问题描述】:

我有一个名为 test 的 c++ 可执行文件。要在终端中执行它,我运行.....

./test

虽然我想在调试模式下运行它,但它会显示执行后立即使用的确切命令

如果您想知道我所说的调试模式到底是什么意思.. 就像我们在 shell 脚本中使用 -x 一样

sh -x test.sh 
      OR
bash -x test.sh

这会在执行后立即显示每个命令。

对于这个 test c++ 可执行文件,我想要同样的东西。 希望有办法。

【问题讨论】:

  • 您需要为此使用调试器。
  • @Mat 你能告诉任何好的名字或网站。我去看看
  • 你如何执行一个cpp文件?您需要将其编译为程序,从而告诉编译器包含调试信息,然后使用附加的调试器(如 gdb)运行程序。
  • @churill 好吧,它的名字是 .cpp,所以我假设它是 cpp。对不起,我没有任何 C++ 知识。但是因为我能够执行它。我想知道如何调试它
  • 您无法调试没有源代码的程序。如果要检查可执行文件的机器代码,则必须使用反编译器,即反向编译器。调试器不适用于此。

标签: c++ linux bash shell


【解决方案1】:

要调试 c++ 程序,您需要:

1。使用调试信息编译程序。

您需要告诉编译器在可执行文件中包含有关符号的信息,以便以后能够对其进行调试(至少以一种简单的方式进行调试)。例如,如果您使用 g++,请添加 -g 选项)

2。使用附加的调试器运行程序

由于您的问题带有 linux 标记,您可能希望使用 gdb。也有提供 gui 的工具。

【讨论】:

  • 非常感谢。虽然我没有编译 c++ 可执行文件。有什么办法吗?
  • 您仍然可以尝试使用 gdb 运行它并逐步执行代码。应该有很多教程如何做到这一点。从本质上讲,它归结为gdb name_of_your_program,然后键入 s 来逐步执行代码。
  • 试试:gdb -p pid
【解决方案2】:

您不能执行 C++ 源文件。您必须首先将它们编译成可执行文件。然后运行可执行文件。 C++ 不是一种解释型脚本语言。

【讨论】:

  • 如果使用了g++,则必须确保使用-g 标志编译此代码。 This 可以帮忙
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多