【问题标题】:Debugging C++ on Windows在 Windows 上调试 C++
【发布时间】:2017-05-25 01:18:56
【问题描述】:

我正在尝试实现一个 Suffix Trie 来使用 C++ 搜索字符串以进行编程分配。现在我已经开始在虚拟机上使用 Vim/Ubuntu 进行编码(因为我运行 Windows),部分原因是我们的讲师鼓励不要使用 IDE 并手动编译,部分原因是虚拟机运行速度太慢而无法正常运行还是 IDE。

但是我的程序已经变得很大,我需要调试一些东西。过去我已经非常喜欢 Eclipse 和 CLion 的调试器,所以我决定将我的工作区复制并粘贴到 windows 目录中,仅用于调试。

我使用 C++11 和 MinGW 作为编译器,程序运行良好:

但是当我尝试调试程序时,我得到了消息:

所以我决定尝试在 Eclipse 中进行调试。这次它有点工作了,但它没有将我的 std::string 对象视为字符串,而只是将其视为具有许多属性的对象:

这显然是个问题,因为我经常与std::strings 打交道。现在我在网上读到这与我使用 CLion 获得的整个 pretty printers 东西有关,但我找不到任何可以告诉我如何使用 MinGW 进行设置的东西。我会很感激任何建议。

【问题讨论】:

  • 这个答案可能会让你开始:stackoverflow.com/a/13923245/3931225
  • 首先,std::string 在构建之前不会正确设置。之后,_M_dataplus>_M_p 通常是指向字符串第一个元素的指针。但是,是的,得到一台漂亮的打印机很好。 (也有可能您的 IDE 和您的代码对 std::string 的定义不同,但我无法从该屏幕截图中诊断出来)
  • 检查您的配置以确保未进行任何优化。或使用/创建调试配置。有时在发布版本中,由于编译时发生的优化,调试符号在调试期间不可用。

标签: c++ windows eclipse c++11 pretty-print


【解决方案1】:

几天前我试图弄清楚同样的事情。在谷歌搜索了几个小时并将所有东西编译到一个地方之后,我创建了一个详细的帖子,可能在这里。 这是链接:https://dev.to/abhinav1602/how-to-run-vs-code-c-debugger-on-windows-4d3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多