Точка останова при изменении файла или при открытии файла - PullRequest
1 голос
/ 09 декабря 2010

Я хотел бы установить точку останова на изменение файла для определенного файла или на открытие определенного файла. Это файл, который наше программное обеспечение открывает и модифицирует во время фрагментов устаревшего кода. Я не совсем уверен, как подойти к этой проблеме. Один из подходов, о котором я подумал, - это найти все места, где мы открываем файлы, разбить их все и проверить путь к файлу, чтобы определить, является ли это путь, который нас интересует. Другой подход, о котором я думал, состоял в том, чтобы попытаться установить точку останова в коде открытия файловой системы, когда путь совпадает с тем, что меня интересует (возможно, более сложно, так как в настоящее время я работаю под Windows. Это может быть вариант под Linux, но решение Visual Studio 2005 было бы идеальным, а решение Linux - полезным).

В настоящее время я использую Visual Studio 2005 для своего программного проекта на C ++. Я не смог найти в Интернете что-либо об этом, как вариант или подход, который люди хотели бы использовать.

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

Большое спасибо за чтение моего вопроса,

-Брайан Дж. Стинар-

1 Ответ

1 голос
/ 09 декабря 2010

Поместите условную точку останова в kernel32.CreateFileW и проверьте имя файла.
Затем вы получите дескриптор файла, чтобы вы могли поставить условную точку останова в kernel32.CreateFileW и проверьте дескриптор файла.CreateFileW и вызовите в нем __debugbreak ().

...