2015-12-16 3 views
0

у меня есть этот вопрос, где, если я инспектировать строку в Delphi всегда начинается с {L и заканчивается другой}Delphi инспектировать показывает {L в начале всех строк

Так для примера, я создаю переменную tempStr, который является строкой. Я делаю следующий код:

tempStr := 'hello'; 

Когда я поставил брейк-пойнт на следующей строке и останавливаться, чтобы осмотреть tempStr желтый Delphi инспектировать окно покажет

{L"he"} 

Это началось недавно происходит , в течение последних 2 недель. Я работал над protobufs для java для delphi. Сначала я думал, что это происходит, потому что я передавал указатель на указатель, который заполнял некоторые из моих переменных случайными символами, но с тех пор я перешел на другой проект с другим кодом, и я все еще получаю эту проблему проверки.

Редактировать: мой пример был неправильным, эта проблема заканчивается отсечением последних 3 символов любой из моих строк, в основном количество символов, которое занимает {L}. Я отредактировал приведенный выше пример, чтобы точно показать, что я вижу при проверке.

Насколько Delphi аддоны идут у меня есть: DDev Extensions 2.83, CodeSiteExpress 5,1, Fast Report 4 и Mad Кроме 4.0.11

+1

Это известная ошибка в Delphi XE2. Обходной путь - полностью отменить регистрацию пакета визуализации C++ debug. –

ответ

1

Согласно Предложение Warren P Я пробовал полностью отменить регистрацию пакета визуализации C++ debug.

В (Tools> Options> Debugger Options> визуализаторы) это:

std::string and std::wstring Visualizer for C++ 

После того как я это упаковано незарегистрированный я заметил, что моя проблема была решена. Я не знал, что именно сделал этот пакет, поэтому я не хотел оставлять его отключенным. Затем я перезапустил Delphi, и пакет по-прежнему отключен, и после запуска Delphi я снова включил пакет. Сейчас все работает, и проблема исправлена. Таким образом, решение было отключено и снова включило этот пакет визуализатора.

+0

Я сделал что-то неправильно здесь? Это решило мою проблему, поэтому я положил ее в ответ. Почему я получаю минусовые баллы? –

+1

Этот пакет вам не нужен, если вы не пишете код C++ и не отлаживаете его. Обычно, если мой комментарий сортирует вас, вы просто напишете комментарий. У меня нет проблем с людьми, которые пишут ответы на себя, но, возможно, кто-то чувствовал, что вы должны просто оставить комментарий. (Я не спустил) –

+0

@ Arioch'The Это несправедливо. Уоррен мог ответить. Он решил не делать этого. Чарльз написал ответ. Здесь нет воровства. Требуется время, чтобы написать ответ, больше времени, чем комментарий. Это имеет значение. –

2

Инспектор просто показывает, что содержание строки Unicode и не Анси в природе. Но тот факт, что он показывает вам синтаксис C++, заставляет меня думать, что, возможно, был установлен пользовательский Debugger Visualizer, который переопределяет инспектор строк по умолчанию. По умолчанию инспектор выглядит следующим образом, вместо:

inspector

Перейти в отладчике Visualizer settings (Сервис> Параметры> Параметры> Debugger визуализаторы) и проверьте, есть ли дополнительные визуализаторы зарегистрированных и включен. Среда IDE поставляется с только 3 стандартных визуализаторов предустановленным:

visualizers

То, что вы описали звуки, как, возможно, пользовательский визуализатор манипулирует инспектор по умолчанию текстовый буфер с различными символами в.

+0

Я не обратил внимание на это в исходном вопросе, но он заканчивает отрезание последних двух символов моих строк при проверке, поэтому он тщательно проверяет эти строки, не выводя их на отладку, что становится довольно утомительным. Также мне любопытно, как я создаю строки unicode, а не ansi. Я просто объявляю переменную в верхней части моей функции, такую ​​как «tempStr: String;» которые я всегда делал. Я использовал программу под названием DBGView примерно в то время, когда она началась. Это будет показывать информацию об отладке при запуске, но не имеет ничего общего с проверкой. –

+0

"* Мне любопытно, как я создаю строки unicode, а не ansi *" - вы не сказали, какую версию Delphi вы используете. 'String' является Ansi в Delphi 2007 и ранее, и является Unicode в Delphi 2009 и более поздних версиях. –

+0

Прошу прощения, я использую Delphi XE2. У меня есть коллеги, работающие с той же версией, которые не видят {L ни в одной из своих строк, ни я до недавнего времени. –

0

У меня тоже была эта проблема, не решена ни одним из предложенных предложений. В проекте, содержащем значительное количество пакетов, есть один или два BPL, которые всегда будут отображаться в стиле {L "he"}. В этих пакетах были предупреждения о компиляторе относительно неявно импортированных единиц.Устранение этих проблем позволило корректно отобразить строки в отладчике.

 Смежные вопросы

  • Нет связанных вопросов^_^