• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czemu visual studio w trybie debug wyrzuca błąd, a w release jest wszystko okej?

Object Storage Arubacloud
0 głosów
167 wizyt
pytanie zadane 22 listopada 2023 w C i C++ przez Daaa22 Dyskutant (8,250 p.)

 

Jak zmienię z debug na release to jest wszystko okej. Czemu tak się program zachowuje?

1 odpowiedź

0 głosów
odpowiedź 22 listopada 2023 przez adrian17 Ekspert (344,860 p.)
Jakby co, nie widać dobrze na tej rozdzielczości screenshota. Możesz wrzucić kod jako tekst tutaj?

W każdym razie - nie jest "okej", tylko kod ma błąd. To że tego nie zauważasz teraz i wszystko wydaje się działać dobrze, nie znaczy że nie wywali się np u kogoś innego, albo u Ciebie za czterdziestym odpaleniem. Tryb debug dodaje dodatkowe walidacje podczas działania programu, więc to łapie.
komentarz 22 listopada 2023 przez tkz Nałogowiec (42,000 p.)

Tryb debug dodaje dodatkowe walidacje podczas działania programu, więc to łapie.

Co masz na myśli? O jakich walidacjach mówisz? 

 

Sam kod i wejście wygląda tak jakby wychodził po za zakres tablicy. Tablica 3, wejście "123\0" czyli 4. 

komentarz 22 listopada 2023 przez adrian17 Ekspert (344,860 p.)

Tablica 3, wejście "123\0" czyli 4. 

Tak zgaduję, ale nie chciałem się rozpisywać z pewnością bez screena.

O jakich walidacjach mówisz? 

No... dokładnie ta która wyskoczyła na screenshocie ;D Zgaduję że 'debug assertion failed' lub 'debug error', sprawdzający naruszenie stosu.

BTW, polecam od razu odpalać program w debuggerze (wielki guzik ze strzałką na górze), to zamiast pokazywać taki wielki popup, to od razu się ładnie zatrzyma i pokaże na której linii się posypał.

komentarz 23 listopada 2023 przez j23 Mędrzec (194,920 p.)

Zgaduję że 'debug assertion failed' lub 'debug error', sprawdzający naruszenie stosu.

VC++ w trybie Debug daje znaczniki przed i za blokami pamięci, które są sprawdzane przed zwolnieniem. Jeśli znacznik zostanie nadpisany, leci asercja. W Release tego nie ma, dlatego "działa".

Podobne pytania

0 głosów
1 odpowiedź 1,314 wizyt
pytanie zadane 5 grudnia 2017 w C i C++ przez Damian Prymus Początkujący (380 p.)
0 głosów
1 odpowiedź 699 wizyt
pytanie zadane 13 stycznia 2019 w C i C++ przez milioneq Początkujący (260 p.)
0 głosów
1 odpowiedź 688 wizyt
pytanie zadane 3 stycznia 2019 w C i C++ przez Kacper Lasota Początkujący (250 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...