У меня структура пользовательских данных, проведение char*
буфера с двумя длинами, связанный: максимальное и фактической длиной:Предельного отображение полукокса * в natvis файл на определенную длину
struct MyData {
char* data;
int length;
int capacity;
};
В Visual Studio (2015) визуализатор отладчика. Я хочу только отображать первые length
элементы буфера data
, а не оставшиеся элементы (обычно неинициализированные).
Я следующее правило в моем пользовательском файле .natvis
для отображения моих пользовательских структур данных:
<Type Name="MyData">
<DisplayString>content="{data,su}" length={length}</DisplayString>
</Type>
Можно ли отображать только data
как «su
» закодирована строкой из data[0]
в data[length-1]
?
если 'данные [длина]' 'это '\ 0'' то большинство отладчиков ничего не будет beoind в \ 0 показать. –
К сожалению, этот унаследованный код, над которым я работаю, не всегда завершает строки с \ 0. Я знаю, немного страшно. –
Тогда я не вижу, как отладчик должен знать длину в использовании - это длина. То, что вы можете сделать, заключается в том, что при распределении памяти нулевое значение (используйте 'calloc' ot' memset'), поэтому будет '\ 0' (если« данные »не используются повторно с разной длиной в использовании). –