2009-10-20 2 views
1

Я пытаюсь перепроектировать программу, которая выполняет некоторые основные синтаксические разборки: текст, текст. У меня есть исполняемая «эталонная реализация» и исходный код на то, что должно быть другой версией, поскольку скомпилированный исходный вывод! = Исполняемый вывод.Посмотрите на временные файлы, которые создает процесс

Процесс создает и удаляет временные файлы очень быстро при многошаговом анализе. Если бы я мог взглянуть на отдельные временные файлы, я мог бы получить отличные диагностические данные, чтобы сузить место, где мой источник отличается от двоичного.

Есть ли способ сделать одно из следующего?

  • Заморозить каталог, чтобы файл создавался, но удаление файла не работает?
  • Запустить программу в «замедленном движении», чтобы я мог смотреть на файлы, которые она создает?
  • Зарегистрировать все, что делает программа, включая любые данные, записанные в файлы?
+0

Как быстро он создает их, прежде чем они исчезнут? Являются ли они двоичными или текстовыми? Любая идея, если они имеют одно и то же имя каждый раз? –

ответ

2

Запуск инструмента как NTFS Undelete должно дать вам возможность восстановить временные файлы, это создает то удаление. Объедините это с ProcMon от Sysinternals, чтобы получить правильные имена файлов.

+0

Хорошие идеи все, но этот помог мне больше всего. благодаря – Ryan

1

Вы не упомянули, что OS вы делаете это, но предполагается, что вы используете Windows, ...

Вы можете быть в состоянии использовать Sysinternals инструменты, такие как Process Explorer и Process Monitor, чтобы получить лучшая идея доступа к файлам. Насколько я знаю, в папках нет опции «только для записи». Для «замедления» файлов вам просто нужно использовать более медленный компьютер. Для ведения журнала инструменты SysInternals помогут немного. Если у вас есть имя файла, которое создается, вы можете попытаться предотвратить их удаление, открыв файлы в потоке из другого процесса. Это помешает системе удалить их.

1

Есть два пути для атаки это:

  1. запускать различные случаи небольшого теста через оба систем и заметить разницу. Поскольку тестовые примеры малы, вы должны понять, почему ваш код работает иначе, чем исполняемый файл.

  2. Разберите исполняемый файл и удалите все инструкции «удалить временный файл». В зависимости от того, как это работает, это может быть очень сложной задачей (скажем, когда нет центрального места, где это происходит).

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