Даже самые простые правила для [Визуализации] в autoexp.dat не будут работать.

Я пытаюсь визуализировать свой матричный класс более читабельным способом, чем массив массивов, используя визуализатор текста. Однако даже простейшие правила не сработают. Вот мое правило для autoexp.dat:

; Custom visualizers for RTSG data types.
RTSG::Matrix44<float> {
  preview(
    #(
      "foo", "bar"
    )
  )
  stringview(
    #(
      "foo", "bar"
    )
  )
}

Вот определение класса:

template <class T> class Matrix44
{
public:
    T       x[4][4];

    // omitted methods, no other data members are declared
}

Однако VS по-прежнему отображает его в окне просмотра следующим образом:

{x=0x0283e530 }

и нет увеличительного стекла для запуска визуализатора текста. Что я делаю неправильно?

ОС: Win 7 64-бит, VS: 2008 v3.5 SP1

Обновление: я также заметил, что VS не всегда реагировал на любые изменения в autoexp.dat, а учитывал их с некоторой задержкой или после нескольких перезапусков отладчика. Как описано в большинстве случаев, отладчик нужно перезапустить только один раз, и изменения следует учитывать, поскольку отладчик считывает этот файл при каждом запуске. На моей машине такого вроде нет.


person Sergiy Belozorov    schedule 04.03.2012    source источник


Ответы (2)


Вы пробовали более общее правило:

RTSG::Matrix44<*> {
  preview(
    #(
      "foo", "bar"
    )
  )
  stringview(
    #(
      "foo", "bar"
    )
  )
}

Попробуйте поставить его еще и в начало файла autoexp.dat.

Если это не сработало, вы можете эффективно сказать, что простейшее правило не работает: p Ура

person Kharaone    schedule 07.03.2012
comment
Когда попробовал твой - сработало. Также это сработало на моем примере впоследствии. - person Sergiy Belozorov; 09.03.2012
comment
Это не ответ на то, что, черт возьми, происходило раньше, но это решило мою проблему, поэтому я награжу вас очками, когда закончится награда. Спасибо. - person Sergiy Belozorov; 09.03.2012

Это окончательный визуализатор для моего матричного класса 4x4:

RTSG::Matrix44<*> {
  stringview(
    #(
      "'",
      [$e.x[0][0]], ['\t'], [$e.x[0][1]], ['\t'], [$e.x[0][2]], ['\t'], [$e.x[0][3]], ['\n'],
      [$e.x[1][0]], ['\t'], [$e.x[1][1]], ['\t'], [$e.x[1][2]], ['\t'], [$e.x[1][3]], ['\n'],
      [$e.x[2][0]], ['\t'], [$e.x[2][1]], ['\t'], [$e.x[2][2]], ['\t'], [$e.x[2][3]], ['\n'],
      [$e.x[3][0]], ['\t'], [$e.x[3][1]], ['\t'], [$e.x[3][2]], ['\t'], [$e.x[3][3]],
      "'"
    )
  )
}

Используйте с визуализатором текста. Создает много одинарных кавычек, но все же лучше, чем 16 значений в столбце. Эта матрица использует хранение по столбцам, индексы переворота по строкам.

person Sergiy Belozorov    schedule 09.03.2012