Mam bibliotekę DLL, która została napisana w C++
i wywołana z aplikacji C#
. DLL
to niezarządzany kod.Nie można zdebugować niezarządzanej biblioteki DLL z C#
Gdybym skopiować DLL
i jego .pdb
pliki z imprezy po kompilacji do C#
aplikacji wykonywania debugowania dir
ja wciąż nie może trafić jakiekolwiek punkty przerwy mogę umieścić w kodzie DLL
. Punkt przerwania ma dołączoną wiadomość, że "nie załadowano żadnych symboli dla tego dokumentu".
Co jeszcze muszę zrobić, aby uzyskać debugowanie w źródle dll
?
mam "Tools
->Options
->Debugging
->General
->Enable
tylko mój kod" Disabled. DLL
jest skompilowany z "Runtime śledzenia i optymalizacje wyłącza (/ ASSEMBLYDEBUG)" i wygenerować Debug Info "Yes (/ DEBUG)"
Choć miałem zamiar odpowiedzieć na to, że nie był” t pewnie, czy to było takie proste, czy nie. Jeśli jest to takie proste, prawdopodobnie zawsze nadużywałem go podczas próby debugowania zarządzanego kodu C++, który łączy się z natywnym kodem. –
Należy zauważyć, że jeśli projekt startowy używa innego projektu C# DLL, który faktycznie wywołuje bibliotekę DLL C++, projekt startowy musi również mieć włączone "Włączanie niezarządzanego debugowania kodu". –
Wybierz rozwiązanie w Eksploratorze rozwiązań. Wybierz z> Menu | Narzędzia | opcje | Debugowanie | Ogólne i odznacz "Wymagaj plików źródłowych, aby dokładnie pasowały do oryginalnej wersji" – Martin