Я недавно начал изучать C++, исходя из фона C#. Моя проблема связана с тем, как обрабатываются исключения.C++ Visual Studio отладка со стеком вызовов
Если у меня есть nullptr
где-то, в результате чего чтение из запрещенного места, то я получаю симпатичную стек вызовов в VS, как это:
Однако, если я брошу свое собственное исключение, или утверждение терпит неудачу, тогда я не понимаю, что пошло не так. VS просто показывает окно ошибки:
A: Это вид неудобно для меня, как в C# Я хотел бы получить трассировку стека в обоих случаях. Есть ли способ распечатать трассировку стека? Или есть ли какой-либо плагин для VS для достижения этой функциональности?
B: И почему AccessViolationException отличается от наших собственных исключений? Почему у нас нет stacktrace для отказов утверждения?
C: Насколько это плохо, чтобы создать свою собственную функцию assert, которая вызовет исключение AccessViolationException, если утверждение не сработает?
EDIT1: Да, я должен был более внимательно прочитать этот почтовый ящик вместо мгновенного нажатия кнопки «Отмена». Виноват.
Помогает ли это? Http: // StackOverflow.com/questions/945193/how-do-i-find-the-stack-trace-in-visual-studio – us2012
Нажмите «Повторить» в поле сообщения assert, и вы должны получить хороший диалог, который даст вам возможность отлаживать код , включая просмотр стоп-кадра. Для исключений: вы тоже можете это сделать: вы можете включить разбивку на исключение, которое будет выбрано, оно находится где-то в настройках. – David
Возможный дубликат [Как получить полный стек вызовов в Visual Studio 2005?] (Http://stackoverflow.com/questions/111023/how-to-get-a-full-call-stack-in-visual-studio -2005) –