Почему указатель изменяет себя во время функционального перехода?

Как упомянул @Hanley, на этом экране показан список областей, которые ваше приложение запрашивало в прошлом. Если ваше приложение необходимо проверить, Google будет использовать список областей. Вы можете добавлять или удалять любые области, которые вы хотите. Ключевым моментом является то, что экран используется для проверки вашего приложения. Добавьте или удалите любые области, которые вы хотите. Однако после утверждения, если вы используете область действия, которая не утверждена, процесс утверждения необходимо повторить.

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

5
задан Daniel Spiewak 18 October 2008 в 07:41
поделиться

5 ответов

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

Попытайтесь выполнить это вместо этого:

bool Func(PFSPARA pfspara)
{
    printf("%x\n", pfspara);
    return false;
}
8
ответ дан 14 December 2019 в 01:20
поделиться

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

1
ответ дан 14 December 2019 в 01:20
поделиться

Это походит на проблему переполнения буфера мне - что-то перезаписывает ту переменную. Но, как упомянуто в других ответах, нет никакого способа сказать наверняка без некоторого фактического кода для работы с.

0
ответ дан 14 December 2019 в 01:20
поделиться

В дополнение к комментариям Rasmus я нахожу, что это обычно стоит проверить, происходит ли проблема в отладочная сборка, а также сборка конечных версий. Если Вы видите, что подлинные проблемы произойти в сборке конечных версий, но не в отладочной сборке, часто до ошибки выставляется процессом оптимизации, таким как неинициализированная переменная. Существует реальная опасность в выполнении большей части Вашего тестирования в отладочная сборка, для предотвращения проблемы, которую Вы видите здесь и затем поставляете сборку конечных версий. IMO, если бы у Вас нет хорошего комплекта регрессионного теста (предпочтительно автоматизированный) я постарался бы не поставлять код opimized.

0
ответ дан 14 December 2019 в 01:20
поделиться

Это звучит мне как, Вы набрасываете на стеке... где-нибудь в Вашем коде, которого переполняет буфер на стеке, или Вы берете адрес объекта на стеке и пишете в него после функциональных возвратов. Это заставляет Ваш стек быть поврежденным.

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

0
ответ дан 14 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: