Naprawdę waliłem głową w przysłowiową ścianę nad tym.DLL Brakujące listy modułów w VS2010
Mam rozwiązanie, które zawiera zarówno projektów kodu C# i C++.
Często dzwonię do bibliotek DLL C++, które są kompilowane w tym projekcie z C# poprzez P/Invoke. Bez problemu. Wszystkie niezbędne ustawienia debuggera w pliku *.sln
, a także pliki w C++ i C# zostały ustawione zgodnie z moją najlepszą wiedzą. Uwaga: Często potrafię debugować podobnie kod P/Invoked C++ bez żadnych problemów!
Naturalnie, doszedłem do wniosku, że być może symbole nie ładowały się - jednak po otwarciu okna modułów odkryłem, że biblioteka DLL, do której próbuję wkroczyć, nie jest nawet wymieniona! Uruchomienie funkcji w moim programie C# rzeczywiście używa biblioteki DLL (otrzymuję prawidłowy wynik), ale podczas oglądania okna modułów, biblioteka DLL nadal nie jest wyświetlana.
Czy ktoś ma pojęcie o tym, co się dzieje?
tl; dr
mam sporo doświadczeń z debugowania P/wywołany C++. Jednak biblioteka DLL, którą chcę debugować, nie pojawia się nawet na liście modułów (więc oczywiście nie jestem w stanie do niej wejść, jeśli debugger VS wydaje się być całkowicie nieświadomy jej istnienia).
Jak możemy odtworzyć scenariusz? –
Czy skonfigurowano debagowanie "w trybie mieszanym"? Np. Żaden z natywnych (tj. Modułów C++) nie jest wymieniony lub jest wymieniony na liście, po prostu nie ten, który próbujesz debugować? –
David: Niestety, nie jestem w stanie z łatwością odtworzyć scenariusza, ponieważ jest to jedyny przypadek, w którym nigdy nie miałem biblioteki dll z listy modułów! Matt: Zostałem ustawiony do debugowania w trybie mieszanym w ramach projektów C++, z Załączem ustawionym na Tak. W projekcie C# projekty C++ są wymienione jako zależności. Również w projekcie C# jest zaznaczone Włączanie debugowania kodu niezarządzanego. Chodzi o to, że po wywołaniu kodu, nawet na ekranie Debug> Modules, żadne z bibliotek dll C++ nie są wymienione. Czy któreś z was wcześniej to widziało? Dziękujemy za porady do tej pory! –