2010-09-14 1 views
1

У меня есть симулятор, написанный на C++, который читает файл и обрабатывает его по строкам. Это трудоемкий процесс. В основном я сталкиваюсь с ошибками времени рома, когда программа вылетает через 15-20 минут. Я начинаю отладку, и программа занимает такое же количество времени, чтобы попасть в точку прерывания, которую я установил. Я просматриваю несколько переменных и просматриваю код, чтобы увидеть, что происходит, внести некоторые изменения и снова перезапустить мою программу. В большинстве случаев мне приходится отлаживать программу несколько раз, прежде чем я вношу фактические изменения кода. Ожидание 15 минут каждый раз, когда выполнение ударит по точке останова, является расточительным. Есть ли способ сохранить состояние программы в конкретной точке останова, а затем начать просто запускать/отлаживать оттуда.Программа/IDE для сохранения состояния запущенной программы и восстановления позже

Я уверен, что я не единственный, кто должен был столкнуться с этой проблемой. Должно быть решение этого.

ответ

0

Лучший способ, я думаю, это конкретная ситуация. В вашем случае создайте какой-то формат, в котором нужно сохранить ход и сохранить его/обновить до файла по мере продвижения. Затем, после перезапуска, существует некоторая логика для определения возобновления или перезапуска.

Кроме того, разбить программу на этапы, которые вы можете подделать или пропустить?

Для этого потребовалось бы неэффективное и сомнительно даже возможное сброс памяти/реестра в «безопасных точках восстановления» и перезагрузка. Я думаю, что самая близкая вещь, реализованная для этого, - это виртуализация целой среды с «моментальными снимками» (VMWare Workstation, Windows Virtual PC?). Это может быть вариант, но это будет почти так же медленно.

+0

Существует много структур данных, которые используются. Даже если бы я мог сделать что-то подобное, понадобилось бы много времени, чтобы построить что-то подобное и проверить это. Я не создал сам симулятор. Это чужой код, который содержит более 50 исходных файлов. Кроме того, я не могу пропускать этапы, потому что в основном это делает чтение строк по файлу очень большого файла. шаги небольшие, но файлы огромные – cyrux

+0

Хм, звучит как сложное задание –

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

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