Как найти местоположение ошибки «индекс вектора вне диапазона»? С++ Visual Studio

Я совсем новичок в кодировании. Я знаю, что означает "индекс вектора вне допустимого диапазона", как это происходит и как это исправить. Но у меня в коде много векторов, и я часто получаю эту ошибку. Но когда возникает эта ошибка, я всегда получаю это окно с ошибкой, которое вы все знаете. И он говорит: «Повторите попытку, чтобы отладить приложение». И когда я нажимаю на нее, я попадаю на строку 1731 в файле «вектор». Но как мне добраться до точки (строки или файла) в моем коде, где я создал эту ошибку???

Я попытался использовать Debug-Navigation в VisualStudio, чтобы перемещаться вперед и назад, чтобы добраться до моего кода. Но это не работает. Заранее благодарны за Вашу помощь.

Вы смотрели на стек вызовов?

UnholySheep 08.01.2023 21:54

Где-то будут кнопки для отладчика, чтобы перемещать "вверх" и "вниз" стек вызовов, которые вы можете использовать, пока не доберетесь до своего кода в стеке вызовов.

user17732522 08.01.2023 21:55

Используйте стек вызовов, чтобы найти свой код, и вы увидите, где ошибка.

Retired Ninja 08.01.2023 21:55

Я думаю, в целом вы могли бы просто посмотреть учебник о том, как использовать отладчик Visual Studio. О том, как использовать отладчик, можно сказать гораздо больше, чем здесь.

user17732522 08.01.2023 21:58

Стек вызовов может показать строки с ошибкой. Но может и не там, где настоящая проблема. Если проблема не решена, приведите минимальный воспроизводимый пример.

Minxin Yu - MSFT 09.01.2023 07:11
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны быть в состоянии найти проблемное место в стеке вызовов. Там вы можете перемещаться вверх и вниз по стеку, дважды щелкнув соответствующую строку, и проверить окна отладки Autos и Locals (https://learn.microsoft.com/en-us/visualstudio/debugger/autos-and-locals). -windows?view=vs-2022).

Проблема может заключаться в том, что вы заходите в отладчик слишком поздно, когда исключение еще не обработано (не было блоков try/catch, способных это обработать, поэтому оно было перехвачено инфраструктурой C++). Проверьте окно Debug->Windows->Exception Settings и установите исключение, которое вы получаете, чтобы оно прерывалось при возникновении исключения (не необработанном).

Спасибо за поддержку. Это именно то, о чем я просил. Теперь я, наконец, могу решить проблемы намного быстрее.

davidusw 11.01.2023 09:11

Другие вопросы по теме