Существует ли средство визуализации состояния программы в виде графиков?
Мне нужно отладить многопоточное приложение, написанное на .Net 3.5 CF. Стандартного отладчика недостаточно, т.к. разрушается целостность программы в точке остановки. Я хочу посмотреть на историю состояний указанных мною переменных в виде множества графиков. Это должно быть похоже на серверную часть, включённую в код программы, и клиентскую в виде отдельного приложения на ПК, которое поддерживает удобное хранение и навигацию по истории.
У меня есть опыт использования такого решения для C++ при помощи специального протокола и программы, но это решение узко специализировано и не подходит для .Net.
Может ли кто-то подсказать как исследовать состояния многопоточной программы без нарушения её работы подобным способом? Выглядеть это может по-разному, но желательно использовать что-то быстродействующее типа TCP для регистрации состояний.
Забыл добавить, что мне нужен online вариант. Я хочу видеть изменения, когда я их сделал (нажал на кнопку формы), т.к. отлаживается в частности и интерфейс. А вообще, вариант логов мне не нравится (они у меня есть и толку от них не много). Мне нужна "прямая" реализация без посредников: указываю переменную - она пишется, отображается, хранится.
У меня был большой опыт логирования программы для встраиваемого устройства, где не было отладчика. Больше не хочу этим заниматься, т.к. кпд низок. Один только взгляд на кучу графиков online позволил мне реально увидеть как работает моя многопотояная программа, а не додумывать это по логам в голове.
Вячеслав Николаевич Мезенцев: Если вам нужно ИМЕННО ПОД ВАШУ КНОПКУ, то и пишите специальную тестовую утилиту, которая будет слушать порт к примеру и тут же рисовать на экране то что вам нужно в онлайне.
yupujexi: Кнопка - это пример. Мне нужно видеть текущее состояние, чтобы иметь возможность изменить последовательность действий в зависимости от состояния. Не представляю как это сделать в offline. Это нужно для упрощения отладки. Интерфейс - это частность. Он изменяет логику работы многопоточного приложения (запускает/останавливает потоки, меняет режим их работы).
Вячеслав Николаевич Мезенцев: судя по вашим словам, вам нужно отладить существующие приложение, а то, о чем вы говорите, требует некоторого фреймворка, под который изначально нужно писать приложение.