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

Testowanie aplikacji napisanych w C++

0 głosów
590 wizyt
pytanie zadane 2 marca 2019 w C i C++ przez Michal5552 Początkujący (400 p.)

Witam, mam pytanie, jakie są narzędzia do wychwytywania wycieków pamięci w programach pisanych w C++. Mam świadomość, że istnieje coś takiego jak inteligentne wskaźniki, lecz i tak klasyczne wskaźniki są wykorzystywane w specyficznych sytuacjach. Chodzi mi o to, czy może Visual Studio zawiera takie narzędzia, bądź czy są jakieś zewnętrzne programy do wychwytywanie tego typów błędów, za pomocne odpowiedzi dziękuję

Poniżej zamieszczam przykładowy kod, by zobrazować co mam na myśli.

#include <iostream>

int main(int argc, const char **argv){
      int temp{new int[5]};
      for (int &i : temp)
         i = 3;
}

 

komentarz 5 marca 2019 przez Secrus Nałogowiec (32,880 p.)
O ile mi wiadomo, w oprogramowaniu produkcyjnym, wykorzystuje się już w zasadzie jedynie inteligentne wskaźniki, dzięki czemu nie trzeba pilnować czy gdzieś będą wycieki. Lepiej pisać lepszy kod, niż szukać N narzędzi do znajdowania gdzie przez słaby kod będzie trzeba wprowadzać poprawki ;)

3 odpowiedzi

+1 głos
odpowiedź 5 marca 2019 przez mokrowski Mędrzec (158,960 p.)
wybrane 21 czerwca 2019 przez Michal5552
 
Najlepsza
https://archive.codeplex.com/?p=vld

https://www.codeproject.com/Articles/31382/Memory-Leak-Detection-Using-Windbg

https://www.memorymanagement.org/

Darmowe narzędzia MS LeakDiag, LDParser, LDGrapher.

Dodatkowo warto stosować jakieś narzędzia do statycznej analizy kodu. Często wykrywają nie tylko problemy związane z pamięcią.
+2 głosów
odpowiedź 2 marca 2019 przez PanRik Gaduła (4,510 p.)
Zobacz sobie taki program jak: "valgrind"

Edit: Najprostszym(ale nieefektywnym) sprawdzaniem czy aplikacja ma wycieki to włączenia aplikacji  i menedżera zadań. Jeśli w menedżerze program zaczyna pochłaniać coraz więcej miejsca to znaczy, że są wycieki :D
1
komentarz 2 marca 2019 przez adrian17 Mentor (354,880 p.)

I nowszy AddressSanitizer.

Chodzi mi o to, czy może Visual Studio zawiera takie narzędzia

Tak, VS też ma kilka flag do wstrzykiwania runtime weryfikacji wskaźników.

komentarz 4 marca 2019 przez Michal5552 Początkujący (400 p.)
A jesteś w stanie powiedzieć mi jak tego użyć, bądź wskazać link do treści na ten temat ?
komentarz 5 marca 2019 przez adrian17 Mentor (354,880 p.)
Pytasz o VS?

Z tego co wiem, w domyślnej konfiguracji debug VS włącza większość tych opcji.

Ale dla pewności, są to na przykład (nie musisz ręcznie wpisywać flag, są dostępne jako normalne opcje konfiguracji projektu w VS):

https://docs.microsoft.com/en-us/cpp/build/reference/rtc-run-time-error-checks?view=vs-2017

https://docs.microsoft.com/en-us/cpp/build/reference/sdl-enable-additional-security-checks?view=vs-2017
+1 głos
odpowiedź 5 marca 2019 przez criss Mędrzec (172,570 p.)
Ja używam Dr Memory I przydaje się

Podobne pytania

+1 głos
1 odpowiedź 675 wizyt
0 głosów
1 odpowiedź 329 wizyt
pytanie zadane 9 maja 2021 w JavaScript przez VBService Ekspert (256,580 p.)
0 głosów
2 odpowiedzi 646 wizyt

93,720 zapytań

142,641 odpowiedzi

323,264 komentarzy

63,268 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...