Wiem, że mogę znaleźć, jeśli proces jest debugowany przez wywołanie Debugger.IsAttached w .NET, ale chciałbym móc uzyskać PID Visual Studio, czyli debugowanie procesów. czy to możliwe?Znajdź pid Visual Studio, który debuguje mój proces
6
A
Odpowiedz
2
Można użyć metody TryGetVSInstance
opisanej w this answer, aby uzyskać wstrzymanie każdego wystąpienia obiektu EnvDTE COM Automation programu Visual Studio. Gdy już to zrobisz, po prostu przetestuj kolekcję DTE.Debugger.DebuggedProcesses i sprawdź, czy którykolwiek z nich wskazuje ten sam identyfikator procesu, co proces, który cię interesuje.
+0
Miałem nadzieję, że będą one ap32 win32 można nazwać, ale myślę, że sugestia jest prawdopodobnie najczystszym sposobem. Dzięki! – Robert
0
This dla mnie.
public static Process GetParent(Process process)
{
var processName = process.ProcessName;
var nbrOfProcessWithThisName = Process.GetProcessesByName(processName).Length;
for (var index = 0; index < nbrOfProcessWithThisName; index++)
{
var processIndexdName = index == 0 ? processName : processName + "#" + index;
var processId = new PerformanceCounter("Process", "ID Process", processIndexdName);
if ((int)processId.NextValue() == process.Id)
{
var parentId = new PerformanceCounter("Process", "Creating Process ID", processIndexdName);
return Process.GetProcessById((int)parentId.NextValue());
}
}
return null;
}
Powiązane problemy
- 1. Program Visual Studio nie debuguje podczas debugowania testów jednostkowych?
- 2. Schowek znajdź pojemnik według pid procesu wewnętrznego
- 3. Znajdź proces uruchamiany komendą nohup
- 4. odłączyć jeden proces z visual studio debugger
- 5. Wyłącz Visual Studio Znajdź domyślny wybór
- 6. Dlaczego nie mój projekt Konfiguracja Wykonaj mój niestandardowy proces rejestracji
- 7. Dlaczego mój proces się kończy?
- 8. VS 2017: Opcja debugowania zabezpieczeń jest ustawiony ale wymaga Visual Studio hostingu proces, który jest niedostępny
- 9. Jak zabić proces, który może nie istnieć na etapie budowania w Visual Studio?
- 10. Visual Studio 2012 XAML proces projektanta jedzenie pamięci
- 11. Jak sprawdzić, który proces (stat: T) jest dołączony przez gdb?
- 12. Pid procesu, który uruchomił jakiś sygnał
- 13. Dlaczego mój menedżer konfiguracji jest wyłączony w Visual Studio 2010?
- 14. Bash Script, proces Zabij pociągając z pliku PID
- 15. Jak zakończyć proces z Python za pomocą pid?
- 16. Przypisywanie skrótu do programu Visual Studio "Znajdź wszystko"
- 17. Visual Studio 2015 RTM Okno dialogowe Znajdź pliki zerwane
- 18. Visual Studio 2008: Znajdź i zamień na znak nowej linii?
- 19. Linux - Znajdź, jeśli proces jest gotowy lub bieganie
- 20. Długi proces, który zwróci plik
- 21. Określanie, który proces blokuje schowek
- 22. Jak zabić proces w Javie, biorąc pod uwagę konkretny PID
- 23. Jak sprawdzić czy proces z danym PID działa?
- 24. golang exec proces w tle i pobierz jego pid
- 25. Czy mój proces oczekuje na dane wejściowe?
- 26. Jak określić, dlaczego mój proces kończy się
- 27. Określanie pid zakończonego procesu
- 28. Znajdź element, który zamknął modalne
- 29. Visual Studio: Szukaj kod odkomentowane tylko
- 30. Visual Studio: ContextSwitchDeadlock
Jeśli proces jest uruchamiany z debuggera, pid debugera będzie rodzicielskim pid debugowanego procesu i można to ustalić. Czy jesteś bardziej zainteresowany scenariuszem, w którym debugger jest zdalnie podłączony do aktywnego procesu. – panickal
Istnieje kilka przypadków, w których VS to * nie * proces debuggera. Podobnie jak zdalne debugowanie lub debugowanie kodu 64-bitowego lub różnych scenariuszy hostingu. Bardzo ważne, że nie potrzebujesz informacji. To jest pytanie XY, nie widzę X. –