Nie można debugować niezarządzanej biblioteki Dll z poziomu C#

Mam DLL, który został napisany w {[0] } i wywołany z C# aplikacji. {[2] } jest kodem niezarządzanym.

Jeśli skopiuję DLL i jego .pdb pliki ze zdarzeniem post build do debug execution C# aplikacji dir nadal nie mogę trafić żadnych punktów przerw w kodzie DLL. Punkt przerwania ma dołączony komunikat, że "żadne symbole nie zostały załadowane dla tego dokumentu".

Co jeszcze muszę zrobić, aby uzyskać debugowanie w źródle dll?

I mieć "Tools->Options->Debugging->General->Enable tylko mój kod " wyłączony. W związku z tym, że nie jest to możliwe, nie jest to możliwe, ponieważ nie jest to możliwe, ponieważ nie jest to możliwe.]}

Author: Rajnish, 2009-11-17

4 answers

Aby debugować w C++ DLL, musisz włączyć debugowanie w trybie mieszanym w aplikacji startowej w Twoim rozwiązaniu.

  • Kliknij prawym przyciskiem myszy na projekt - > właściwości
  • Przejdź do zakładki Debug
  • Zaznacz opcję "Włącz debugowanie kodu niezarządzanego"

To pozwoli Ci debugować do kodu natywnego dla scenariusza w stylu F5. Jeśli chcesz włączyć go do dołączania do procesu, wykonaj następujące czynności w oknie dialogowym "Dołącz do procesu"

  • Wybierz proces, aby debug
  • Kliknij na " Wybierz ..."przycisk nad listą procesów
  • Kliknij "Debuguj te typy kodu"
  • Sprawdź zarówno zarządzane, jak i natywne
 56
Author: JaredPar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-16 21:16:50

Musisz włączyć debugowanie niezarządzane (natywne).

Jeśli dołączasz do procesu po jego uruchomieniu:

Przejdź do menu Narzędzia, a następnie załącz do procesu, upewnij się, że masz włączone debugowanie natywne.

Zobaczysz okno edycji tylko do odczytu:

Dołącz do: Managed code, Native code [Select]

Upewnij się, że kod natywny jest tam wymieniony. Jeśli nie dodać.

Jeśli rozpoczynasz swój projekt z poziomu visual studio:

Na właściwościach projektu, które uruchamiasz w trybie debugowania. Przejdź do właściwości projektu, a następnie wybierz kartę Debuguj.

Upewnij się, że to pole jest zaznaczone:

Włącz debugowanie kodu niezarządzanego

 4
Author: Brian R. Bondy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-16 21:15:57

Kiedy dołączasz proces do debugowania, musisz określić, w jaki sposób chcesz dołączyć. Masz kilka opcji, a mianowicie zarządzane i natywne. Aby debugować kod C# z niezarządzanym C++, musisz dołączyć do procesu jako zarządzany i natywny (oba mogą być wybrane w tym samym czasie).

 1
Author: Joseph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-16 21:16:09

Miałem do czynienia z tym samym problemem i zrobił wszystko, co zostało zasugerowane w zaakceptowanej odpowiedzi, ale punkty przerwania w niezarządzanej dll nie został trafiony!

Jednak kiedy zrobiłem następujące mogłem w końcu debugować dll!

Wybierz rozwiązanie w Eksploratorze rozwiązań
Wybierz z Menu / Narzędzia|Opcje|debugowanie / Ogólne
Odznacz opcję "Wymagaj plików źródłowych, aby dokładnie pasowały do oryginalnej wersji"

 0
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-12 04:48:47