Как я могу найти отсутствующий glPopMatrix в Visual Studio

0

У меня есть теория, согласно которой ошибки, с которыми я сталкиваюсь, связаны с использованием glPushMatrix без соответствующего glPopMatrix. Мой проект довольно большой, поэтому я хотел бы иметь возможность легко найти эти недостающие glPopMatrix (). Я думал об использовании поиска с использованием регулярных выражений, но я не могу понять, как найти то, что я хочу (плюс, регулярное выражение в Visual Studio не совсем то, что я привык (php), поэтому я Я немного потерян. В любом случае, есть идеи, как это сделать?

редактировать: я использую C ++

Шон
источник
1
Разве это не должно быть в StackOverflow?
Эль
@Al Everett Не знаю, это касается использования Visual Studio ..
Shawn

Ответы:

0

Может быть проще изменить код, чтобы выполнить проверку за вас.

Создайте новые версии glPushMatrixи glPopMatrixустановите и снимите флажок. Затем, если ваш новый glPushMatrixвызывается с установленным флагом, вы знаете, что нашли вызов после вашего преступника.

С соответствующей регистрацией стеков вызовов и т. Д. Вы сможете найти виновника.

Прошло много времени с тех пор, как я занимался этим типом программирования, и вы не говорите, какой язык вы используете, поэтому я не знаю, сможете ли вы переопределить методы напрямую или вам понадобятся некоторые jiggery-pokery, чтобы получить это на работу.

ChrisF
источник
Любые идеи для быстрого исправления с помощью C ++?
Шон
@Shawn - я давно не занимался с ++, поэтому я немного заржавел. В крайнем случае, вы можете запустить глобальный поиск и замену, чтобы поменять вызовы или определить пару макросов?
ChrisF
Я использовал поиск и замену, заменив glPushMatrix на glPushMatrix. Затем Visual Studio сообщит мне, сколько было выполнено замен, эффективно подсчитав количество выполненных вызовов glPushMatrix. Делая то же самое для pop, я мог видеть, было ли несоответствие… или я так думал, на самом деле у меня было несколько glPushMatrix скрыто в комментариях, которые испортили эту стратегию подсчета. Что касается макросов, вы имеете в виду делать что-то подобное? #define glPushMatrix(); glPushMatrix();cout<<"PUSH!"<<endl;Если это так, и если это работает (пока не могу проверить), это блестящая идея!
Шон
Хорошо, так что это не работает .. Я думаю, что следующим будет поиск и замена всех нажатий и всплывающих окон пользовательской функцией, которая изменяет счетчик или что-то еще до вызова оригинального push или pop ..
Shawn