如何在Eclipse调试器中更改C++字符串值



在Eclipse中调试C++程序时,我需要更改字符串的值。但当我要做的时候,我看到了这一点,我无法改变:(这是图片的链接,我还没有足够的声誉)https://i.stack.imgur.com/G8gxu.png

我应该尝试什么?非常感谢。

std::string实际上在幕后并不是很简单。它必须管理存储文本的内存缓冲区。如果你想让字符串有一个不同的(可能更长的)值,那么std::string可能必须解除旧缓冲区的分配,分配一个足够大的新缓冲区,最后复制这些值,同时跟踪所有相关信息(例如,它的旧大小和新大小)。

还有小字符串优化。

调试器执行这些更改(而不破坏所讨论的std::string)并非易事。一些非常了解底层编译器的调试器(例如,如果您在Visual Studio中工作)可能能够做到这一点,但对于调试器来说,这并不是一件简单的事情

因此,如果Eclipse的调试器不允许在运行时更改字符串值,我不会感到惊讶。您可能可以更改单个字符,但特别是添加字符(或用更长的字符串替换)可能超出了它的能力。

免责声明:当然有可能有一种方法或变通方法,比如gdb。我不使用Eclipse,所以我不能告诉你,但如果没有办法做到这一点,那么以上基本上就是原因

最新更新