
Είναι δυνατόν να εγκαταστήσετε το Remote Debugger x86 ως υπηρεσία σε μια μηχανή 64bit; Θα πρέπει να επισυνάψετε ένα πρόγραμμα εντοπισμού σφαλμάτων σε διαχειριζόμενο κώδικα σε μια διαδικασία Session 0. Η διαδικασία εκτελείται 32bit αλλά η υπηρεσία εντοπισμού σφαλμάτων που εγκαθίσταται είναι 64bit και δεν θα αποδίδουν τη διαδικασία 32bit. 


Προσπάθησα τη δημιουργία της υπηρεσίας χρησιμοποιώντας την εντολή SC, και ήταν σε θέση να πάρει την υπηρεσία για να ξεκινήσει, και επαλήθευσε ότι έτρεχε σε διεργασίες Διαχείριση εργασιών. Ωστόσο, όταν προσπάθησα να συνδεθείτε σε αυτό με το Visual Studio, είπε ότι η απομακρυσμένη οθόνη εντοπισμού σφαλμάτων δεν είναι ενεργοποιημένη. Όταν σταμάτησα την υπηρεσία x86, και άρχισε την υπηρεσία x64 και ήταν σε θέση να βρει την οθόνη, αλλά εξακολουθεί να έχεις ένα λάθος.


Εδώ είναι το σφάλμα όταν προσπαθώ να χρησιμοποιήσετε το απομακρυσμένο πρόγραμμα εντοπισμού σφαλμάτων: Δεν είναι δυνατή η σύνδεση με τη διαδικασία. Η έκδοση 64-bit του Visual Studio Remote εντοπισμού σφαλμάτων Monitor (Msvsmon.exe) δεν μπορεί να debug διαδικασίες 32-bit ή 32-bit χωματερές. Παρακαλούμε χρησιμοποιήστε την έκδοση 32-bit αντ 'αυτού.


Εδώ είναι το σφάλμα όταν προσπαθώ να επισυνάψετε σε τοπικό επίπεδο: Σύνδεση σε μια διαδικασία σε διαφορετική περίοδο λειτουργίας διακομιστή τερματικού δεν υποστηρίζεται σε αυτόν τον υπολογιστή. Προσπαθήστε απομακρυσμένο εντοπισμό σφαλμάτων στο μηχάνημα και τη λειτουργία του Microsoft Visual Studio Remote εντοπισμού σφαλμάτων Monitor στη συνεδρία της διαδικασίας του.


Αν προσπαθήσω να εκτελέσετε το 32bit απομακρυσμένο πρόγραμμα εντοπισμού σφαλμάτων ως μια εφαρμογή, αυτό δεν θα λειτουργήσει επισυνάψετε β / γ το Remote Debugger λειτουργεί σε συνεδρία μου και όχι στη σύνοδο 0.

 
x86 Υπηρεσία Απομακρυσμένης εντοπισμού σφαλμάτων σε x64
=======================================================



Αυτό λειτουργεί στον υπολογιστή μου (TM) μετά την εγκατάσταση rdbgsetup\_x64.exe και να περάσει από τον οδηγό διαμόρφωσης:



```
sc stop msvsmon90
sc config msvsmon90 binPath= "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe /service msvsmon90"
sc start msvsmon90

```
 

Δεν έχω δοκιμάσει αυτό, αλλά εδώ είναι μια πρόταση ούτως ή άλλως:


Προσπαθήστε να εγκαταστήσετε την υπηρεσία απομακρυσμένου εντοπισμού σφαλμάτων x86 με το χέρι.



```
sc create "Remote Debugger" binpath= "C:\use\short\filename\in\the\path\x86\msvsmon.exe /service msvsmon90"

```

Δύο σημειώσεις:


* Θα χρειαστεί να χρησιμοποιήσετε σύντομες ονόματα στο δρόμο για να Msvsmon.exe να μην χρειάζεται να παραθέσω τη διαδρομή (από το σύνολο εντολών πρέπει να αναφέρεται)
* πρέπει να υπάρχει ένα κενό διάστημα μετά το «binPath =» (και δεν υπάρχει χώρος πριν από το χαρακτήρα «=»). Όποιος έγραψε το πρόγραμμα ανάλυσης της γραμμής εντολών για την εντολή sc πρέπει να είναι καταραμένοι.


Στη συνέχεια, μπορείτε να χρησιμοποιήσετε τη μικροεφαρμογή πίνακα ελέγχου services.msc για να πάρει το τρέξιμο με τα σωστά διαπιστευτήρια.


Θα πρέπει πιθανώς να σταματήσει ή ίσως ακόμη και να διαγράψετε το υπάρχον x64 υπηρεσία απομακρυσμένου εντοπισμού σφαλμάτων.

 

Μπορώ να επιβεβαιώσω ότι αυτό που θέλετε να κάνετε θα λειτουργήσει πραγματικά. Μου συμβαίνει συχνά να συνδέσετε 32 bit xp worstation μου σε ένα διακομιστή Win2003 x64 με VS2008 απομακρυσμένο πρόγραμμα εντοπισμού σφαλμάτων.

 

Είχαμε το ίδιο πρόβλημα όταν προσπαθούν να απομακρυσμένο εντοπισμό σφαλμάτων μια ιστοσελίδα που χρησιμοποιεί ως 32 bit μέσα IIS 64 bit.


Μπορείτε επίσης να το κάνετε αυτό:


* Σταματήστε την προεπιλεγμένη υπηρεσία εντοπισμού σφαλμάτων (που θα είναι x64 και ο εγκαταστάτης θα ήταν έξυπνο και διαμορφωμένο ότι το ένα να τρέχει).
* Πλοηγηθείτε στο φάκελο μενού έναρξης Remote Debugger και την εκτέλεση της υπηρεσίας x86 εντοπισμού σφαλμάτων. Αγνοήστε την προειδοποίηση σχετικά με   

32bit / 64bit.
* Ανοίξτε το> Επιλογές παράθυρο Εργαλεία- του παραθύρου της εφαρμογής απομακρυσμένου εντοπισμού σφαλμάτων και να   

σημειώνει την αξία της «διακομιστή   

πλαίσιο κειμένου Name».
* Τώρα μπορείτε να συνδέσετε το Visual Studio σας για να αντιγράφοντας το «Όνομα διακομιστή»   

αξία σε πλαίσιο κειμένου / combo του «Προκριματικό» για το Τοποθετήστε σε τετραχρωμία διαλόγου   

της Visual Studio.


Σε μια σχετική σημείωση, υπάρχει επίσης ένα bug χαμηλού επιπέδου με τον έλεγχο ταυτότητας Kerberos αν συνδέονται από τα Windows 2008/7 / Vista σε ένα μηχάνημα 2003, περιγράφεται εδώ: [http://www.labs.jobserve.com/Articles.aspx / Remote-εντοπισμό σφαλμάτων κώδικα-για-τα Windows-2003-από-Vista-ή-τα Windows-72008-R2](http://www.labs.jobserve.com/Articles.aspx/Remote-debugging-code-on-Windows-2003-from-Vista-or-Windows-72008-R2) και αναφέρθηκε στο MS (έκλεισε πρόσφατα ως 'εξωτερική'), μέσω Connect εδώ: [https://connect.microsoft.com/ VisualStudio / σχόλια / ViewFeedback.aspx; FeedbackID = 508455](https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508455)

 

Εργάστηκε για μένα, χωρίς την εγκατάσταση επιπλέον λογισμικού. Απλά αντέγραψε το `C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger`φάκελο στο VM και άρχισε το `msvsmon.exe`από το `x86`φάκελο. Τόσο για τους επισκέπτες και υποδοχής μου `x64`.

 

1) Εγκαταστήστε την έκδοση x64. Αυτό εγκαθιστά το πρόγραμμα εντοπισμού σφαλμάτων x86, αλλά δεν δημιουργεί μια συντόμευση.


2) Μπορείτε να βρείτε το εκτελέσιμο για τη διαδικασία x86 εντοπισμό σφαλμάτων εδώ ... C: \ Program Files \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Remote Debugger \ x86 \ Msvsmon.exe


3) Αν θέλετε, να καρφώσει στη γραμμή εργασιών.

 

Μερικές φορές συνέβη αυτό το σφάλμα, απλά κλείστε το Visual Studio και να το ανοίξετε πάλι, όλα είναι εντάξει!


Πολύ περίεργη συμπεριφορά από vs

 

Έτρεξα σε αυτό το θέμα σήμερα (64 bit του λειτουργικού συστήματος και VS 2019). Άλλαξα ρύθμισης παραμέτρων για να χρησιμοποιήσετε x64 για το έργο, IISExpress στη χρήση 64 bit και στόχος της πλατφόρμας είναι x64. Θα χρησιμοποιηθεί ακόμα το πρόγραμμα εντοπισμού σφαλμάτων 32 bit και παραπονέθηκε. Τέλος, όταν ενεργοποιηθεί Σενάριο εντοπισμού σφαλμάτων που άρχισε να χρησιμοποιεί το πρόγραμμα εντοπισμού σφαλμάτων 64 bit. Έτσι, θα έλεγα ο συνδυασμός όλων των έκανε το κόλπο.

 