Я закодировал большой проект, который запускается, когда я открываю его в режиме отладки или выпуска, но когда я его открываю без отладки (ctrl + f5), он сбой. Я долго искал, чтобы найти ошибку кучи, но ничего не нашел. Проблема в том, что мне нужен запущенный .exe программы, поэтому я хотел спросить, есть ли возможность связать отладчик окон с .exe, чтобы он всегда начинался с него.Ссылка на отладчик Windows на проект
ответ
Если он не врезаться сразу, может быть, это помогает:
- Вы можете запустить исполняемый файл.
- Откройте свое решение в визуальной студии. Убедитесь, что это одна и та же сборка.
- Откройте меню DEBUG и нажмите «Прикрепить» к процессу.
- Откроется окно с описанием всех запущенных процессов. Выберите исполняемый файл, которого сбой
- Снова откройте меню DEBUG и выберите Исключение (Ctrl-Alt-E)
- Убедитесь, что флажок «Брошенный» проверяются на Common Language Runtime Исключение
- Теперь сбой приложения .. It остановится на линии, которая вызывает его.
Также ищите директивы по окружающей среде. например #IF DEBUG #END IF. или #IF RELEASE. Такие вещи. Несколько раз обманул меня.
Удачи. Надеюсь это поможет!
Он падает через 3 - 5 секунд – Jesaya00
Вам нужно будет щелкнуть очень быстро, я боюсь .. Мне жаль, что мой ответ был не слишком полезен. Удачи, надеюсь, вы найдете причину аварии. –
К сожалению, это не помогает, я даже попробовал верификатор приложения, но он просто возвращает прерывание. Я так подавлен, я даже заплатил бы за это, чтобы исправить эту ошибку ... – Jesaya00
Вы можете делать различные вещи. Сначала убедитесь, что у вас есть «большой блок try» в основном. то есть поставить основную логику в попытке, можно поймать исключения и четко рассказать об этом. Вероятно, это не то, что происходит в вашем случае.
Вы можете подключить отладчик, включая Visual Studio, к запущенному процессу - см. Параметр «Приложить к процессу» в меню отладки. Если он построен с помощью отладочных символов, которые вы можете сделать, даже для кода выпуска это может помочь. Если он оптимизирован, вам может быть сложно.
Наконец, вы можете создать аварийный дамп и проверить, что после его отказа. См. Документы на странице MiniDumpWriteDump. На его usage есть несколько примеров. Или вы можете установить обработчик прерывания: См. here. Это упоминает _set_abort_behavior
, который при вызове с _CALL_REPORTFAULT
также генерирует свалку.
Есть ли у вас отзыв, когда он падает? Сообщение об ошибке/Активировать стрельбу? – doctorlove
Нет, через 3 - 5 секунд, но я думаю, что у меня более одной ошибки. Нет, он просто не отвечает, когда я открываю его с помощью верификатора приложения, он возвращает abort() – Jesaya00
Можете ли вы написать несколько тестов вокруг определенных функций, чтобы попытаться сбросить то, что из-за сбоя? – doctorlove