Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W programie Visual Studio 2019 w wersji 16.1 obsługa narzędzia AddressSanitizer (ASan) jest zintegrowana z projektami systemu Linux. Można włączyć usługę ASan zarówno dla projektów systemu Linux opartych na programie MSBuild, jak i projektów CMake. Działa on w zdalnych systemach Linux i na Podsystem Windows dla systemu Linux (WSL).
Informacje o usłudze ASan
ASan to narzędzie do wykrywania błędów pamięci środowiska uruchomieniowego dla języka C/C++, które przechwytuje następujące błędy:
- Użyj po wolnym (odwołanie do wskaźnika zwisającego)
- Przepełnienie buforu stert
- Przepełnienie buforu stosu
- Użyj po powrocie
- Użyj po zakresie
- Usterki kolejności inicjowania
Gdy usługa ASan wykryje błąd, natychmiast zatrzymuje wykonywanie. Jeśli uruchomisz program obsługujący usługę ASan w debugerze, zostanie wyświetlony komunikat opisujący typ błędu, adres pamięci i lokalizację w pliku źródłowym, w którym wystąpił błąd:
Możesz również wyświetlić pełne dane wyjściowe ASan (w tym miejsce przydzielenia/cofnięcia przydziału uszkodzonej pamięci) w okienku Debugowanie okna danych wyjściowych.
Włączanie rozwiązania ASan dla projektów systemu Linux opartych na programie MSBuild
Uwaga
Począwszy od programu Visual Studio 2019 w wersji 16.4, narzędzie AddressSanitizer dla projektów systemu Linux jest włączone za pomocą >
Aby włączyć aplikację ASan dla projektów systemu Linux opartych na programie MSBuild, kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań i wybierz polecenie Właściwości. Następnie przejdź do pozycji Właściwości>konfiguracji C/C++>Sanitizers. Usługa ASan jest włączona za pomocą flag kompilatora i konsolidatora i wymaga ponownego skompilowania projektu.
Opcjonalne flagi środowiska uruchomieniowego ASan można przekazać, przechodząc do >właściwości AddressSanitizer Runtime Flags. Kliknij strzałkę w dół, aby dodać lub usunąć flagi.
Włączanie aplikacji ASan dla projektów CMake programu Visual Studio
Uwaga
Aby skompilować przy użyciu ustawień wstępnych narzędzia CMake, najpierw włącz usługę ASan w pliku CMakeLists.txt. Aby uzyskać więcej informacji, zobacz Enable AddressSanitizer for Windows and Linux (Włączanie narzędzia AddressSanitizer dla systemów Windows i Linux).
Aby włączyć aplikację ASan dla narzędzia CMake, kliknij prawym przyciskiem myszy CMakeLists.txt plik w Eksplorator rozwiązań i wybierz pozycję Ustawienia narzędzia CMake dla projektu.
Upewnij się, że w lewym okienku okna dialogowego wybrano konfigurację systemu Linux (na przykład Linux-Debug):
Opcje ASan znajdują się w obszarze Ogólne. Wprowadź flagi środowiska uruchomieniowego ASan w formacie "flag=value", oddzielone spacjami. Interfejs użytkownika niepoprawnie sugeruje użycie średników. Użyj spacji lub dwukropków, aby oddzielić flagi.
Instalowanie symboli debugowania ASan
Aby włączyć diagnostykę ASan, należy zainstalować jego symbole debugowania (libasan-dbg) na zdalnej maszynie z systemem Linux lub instalacji WSL. Wersja biblioteki libasan-dbg, która jest ładowana, zależy od wersji biblioteki GCC zainstalowanej na komputerze z systemem Linux:
| Wersja rozwiązania ASan | Wersja GCC |
|---|---|
| libasan0 | gcc-4.8 |
| libasan2 | gcc-5 |
| libasan3 | gcc-6 |
| libasan4 | gcc-7 |
| libasan5 | gcc-8 |
Możesz określić, która wersja GCC jest używana za pomocą tego polecenia:
gcc --version
Aby wyświetlić potrzebną wersję biblioteki libasan-dbg, uruchom program, a następnie przyjrzyj się okienku Debugowanie w oknie Dane wyjściowe. Załadowana wersja rozwiązania ASan odpowiada wersji biblioteki libasan-dbg wymaganej na maszynie z systemem Linux. Możesz użyć Ctrl + F , aby wyszukać frazę "libasan" w oknie. Jeśli na przykład masz bibliotekę libasan4, zobaczysz wiersz podobny do następującego:
Loaded '/usr/lib/x86_64-linux-gnu/libasan.so.4'. Symbols loaded.
Bity debugowania ASan można zainstalować w dystrybucjach systemu Linux, które używają narzędzia apt za pomocą następującego polecenia. To polecenie instaluje wersję 4:
sudo apt-get install libasan4-dbg
Pełne instrukcje dotyczące instalowania pakietów symboli debugowania w systemie Ubuntu można znaleźć w artykule Debugowanie pakietów symboli.
Jeśli aplikacja ASan jest włączona, program Visual Studio wyświetli monit w górnej części okienka Debugowanie okna Dane wyjściowe, aby zainstalować symbole debugowania ASan.