Debugowanie kodu GPU
Debugowanie kodu C++, która jest uruchomiona na jednostki przetwarzania grafiki (GPU).Procesor GPU, obsługa w programie Visual Studio debugowania zawiera wykrywania wyścigu, uruchomienie procesów i dołączanie do nich, a włączenie do debugowania systemu windows.
Obsługiwane platformy
Debugging is supported on Windows 7, Windows 8, Windows Server 2008 R2, and Windows Server 2012.Do debugowania na emulatorze software Windows 8, lub Windows Server 2012 jest wymagana.Do debugowania na sprzęcie, należy zainstalować sterowniki dla karty graficznej.Nie wszyscy dostawcy sprzętu w życie wszystkie funkcje debugera.Przeczytaj dokumentację dostawcy dla ograniczenia.
[!UWAGA]
Niezależni dostawcy sprzętu którzy chcą zapewnić obsługę debugowania GPU w programie Visual Studio należy utworzyć bibliotekę DLL, która implementuje interfejs VSD3DDebug i obiekty docelowe własnymi sterownikami.
Konfigurowanie debugowania GPU
Debuger nie może przerwać na kod GPU i CPU kody w tym samym wykonanie aplikacji.Domyślnie podziały debugera na kod Procesora.Aby zdebugować kod GPU, należy użyć jednego z tych dwóch etapów:
W Program Debug: polecenie typu wystawiać przedmioty w serwisie Standard pasek narzędzi, wybierz polecenie GPU tylko.
W Solution Explorer, w menu skrótów dla projektu, wybierz polecenie Właściwości.W Stron właściwości okno dialogowe, wybierz Debugging, a następnie wybierz GPU tylko w Typu debugera listy.
Uruchomienie i dołączanie do aplikacji
Polecenia debugowania Visual Studio umożliwiają uruchamianie i zatrzymywanie GPU debugowania.Aby uzyskać więcej informacji, zobacz Rozpoczynanie, przerywanie i zatrzymywanie działania debugera programu Visual Studio oraz nawigowanie po nim.Można również dołączyć debuger GPU do działającego procesu, ale tylko wtedy, jeśli ten proces jest wykonywany kod GPU.Aby uzyskać więcej informacji, zobacz Jak: dołączanie do procesu uruchomionego.
Uruchom do kursor i uruchom do kursor bieżący fragment
Podczas debugowania na GPU, masz dwie opcje uruchamiania w lokalizacji kursora.Polecenia dla obu opcji są dostępne w menu skrótów Edytor kodu.
Uruchom do kursor polecenie uruchamia aplikację, aż osiągnie położenie kursora, a następnie przerwy.Nie oznacza to, że bieżący wątek działa do kursora; oznacza, że pierwszy wątek, który dociera do punktu kursor wywołuje przerwa.Aby uzyskać więcej informacji, zobacz [NIB] 12/13 Porady: uruchamianie aż do lokalizacji, w której znajduje się kursor.
Uruchomić bieżącego sąsiadująco do kursora w polecenie uruchamia aplikację, aż wszystkie wątki w bieżący fragment do kursora, a następnie przerwy.
Debugowania systemu Windows
Za pomocą niektórych debugowania systemu windows, można zbadać, Flaga i zamrozić GPU wątków.Aby uzyskać więcej informacji, zobacz:
Wątków i procesów(Pasek narzędzi Extreme Programming)
Wyjątki synchronizacji danych
Debuger może identyfikować kilka warunków synchronizacji danych podczas wykonywania.Po wykryciu warunek, debuger przechodzi w stan break.Istnieją dwa sposoby —złamać lub Kontynuuj.Za pomocą Wyjątki okno dialogowe, można określić, czy program diagnostyczny wykrywa te warunki i również jakich warunkach będzie przerwa dla.Aby uzyskać więcej informacji, zobacz Wyjątek obsługi (Debugowanie).Można również użyć Opcje okno dialogowe, aby określić debugera należy zignorować wyjątków Jeśli dane, które napisano nie powoduje zmiany wartości danych.Aby uzyskać więcej informacji, zobacz Ogólne, debugowanie, okno dialogowe Opcje.
Rozwiązywanie problemów
Określanie akceleratora
Punkty przerwania w kodzie GPU są tylko hit, jeśli kod jest uruchomiony na accelerator::direct3d_ref (REF) akceleratora.Jeśli nie określisz akceleratora w kodzie, akcelerator REF jest automatycznie zaznaczona jako Debugowanie typu Accelerator we właściwościach projektu.Jeśli Twój kod jawnie wybiera akceleratora, akcelerator REF nie będą używane podczas debugowania i punkty przerwania nie zostanie uruchomiona, chyba, że posiadany sprzęt GPU ma, obsługa debugowania.Można temu zaradzić poprzez napisanie kodu, tak aby uzywalo REF accelerator podczas debugowania.Aby uzyskać więcej informacji, zobacz właściwości projektu i Obiekty accelerator i accelerator_view i Ustawienia projektu dla konfiguracji debugowanie C++.
Warunkowe punktów przerwania
Warunkowe punkty przerwania w kodzie GPU są obsługiwane, ale nie każdy wyrażenie może zostać oceniony na urządzeniu.Gdy wyrażenie nie może być określona na urządzeniu, zostanie ona potraktowana w debugerze.Debuger prawdopodobnie może działać wolniej niż urządzenia.
Błąd: Istnieje problem z konfiguracją z wybranym typem Accelerator debugowania.
Błąd ten występuje, kiedy w przypadku rozbieżności między ustawienia projektu i konfigurację komputera, na którym debugowany na.Aby uzyskać więcej informacji, zobacz Ustawienia projektu dla konfiguracji debugowanie C++.
Błąd: Sterownik debugowania dla wybranego typu Accelerator debugowania nie jest zainstalowany na komputerze docelowym.
Ten błąd występuje, jeśli debugowania na komputerze zdalnym.Debuger nie może określić do czasu wykonywania, czy sterowniki są zainstalowane na komputerze zdalnym.Sterowniki są dostępne u producenta karty graficznej.
Błąd: Limit czasu wykrywania i odzyskiwania (TDR) musi być wyłączona w zdalnej lokacji.
Istnieje możliwość, w obliczeniach C++ AMP przekroczyć domyślny czas opóźnienia jest ustawiana przez system Windows limit czasu wykrywania i proces odzyskiwania (TDR).Kiedy tak się stanie, przy obliczaniu zostanie anulowane, a dane zostaną utracone.Aby uzyskać więcej informacji, zobacz Obsługi TDR w C++ AMP.
Zobacz też
Zadania
Instruktaż: Debugowanie aplikacji AMP C++
Informacje
Ustawienia projektu dla konfiguracji debugowanie C++