【发布时间】: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