Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Debug DirectX εφαρμογών με το DirectX SDK και το Visual Studio 2010

  •  28-06-2010, 11:13

    Debug DirectX εφαρμογών με το DirectX SDK και το Visual Studio 2010

    Δεν ξέρω που να το βάλω αυτό το θέμα, νομίζω ότι κολλάει καλύτερα στην κατηγορία XNA.
    Θέλω απλά να κάνω μια παρατήρηση, και ίσως έμμεσα να λάβω απάντηση για το πρόβλημά μου.
    Για να δουλέψει κανείς πάνω σε μια εφαρμογή DirectX (προσωπικά δουλεύω με unmanaged κώδικα) χρειάζεται το DirectX SDK (εκτός αν ξέρει απ'έξω όλο το API). Επίσης, με το SDK εγκαθιστάται στο σύστημα και το DirectX Control Panel, όπου μπορεί κανείς να θέσει τα debug DLLs του Direct3D εν ενεργεία και να λαμβάνει μηνύματα στο output Window του Visual Studio που προέρχονται από το DirectX.
    Το πρόβλημα εμφανίζεται τη στιγμή που (δεν) διαπιστώνει κανείς ότι το Visual Studio 2010 είναι πλέον εφαρμογή WPF, άρα χρησιμοποιεί κι αυτό DirectX κώδικα (φαίνεται από την προεπιλογή Tools\Options\General\Visual Experience "...hardware acceleration...")
    Όταν λοιπόν λες στο DirectX να μπει σε debug mode, κάθε εφαρμογή που τρέχει στο PC θα χρησιμοποιήσει επίσης DirectX debug. Και το Visual Studio θα αρχίσει να γκρινιάζει και να κρασάρει. Υπάρχει ένα σχετικό bug στο Microsoft Connect, και λένε ότι πρόκειται για known issue.
    Ένας τρόπος που γλιτώνει τις πολλές φασαρίες είναι ο εξής:
    * DirectX Control Panel - set Direct3D Retail mode
    * αντιγραφή του d3d9d.dll από το φάκελο του SDK στο φάκελο όπου δημιουργείται το .exe ή το .dll της εφαρμογής που δουλεύετε.
    * μετονομασία αυτού του d3d9d.dll σε d3d9.dll
    Έτσι στην ουσία ξεγελάτε τον debugger. Αλλά το κρασάρισμα αν και τουλάχιστον μειώνεται, δεν αποφεύγεται τελείως. Δέχομαι πού και πού κάτι crash reports με περιγραφή "Problem Event Name: BEX".
    Με αυτό το post θα ήθελα να κοινοποιήσω την εμπειρία μου, και ίσως αν υπάρχει κανείς με περισσότερες γνώσεις στο αντικείμενο να με βοηθήσει να απαλλαγώ από τα crash εντελώς, αν και η κατάσταση έτσι είναι ανεκτή.

    Panagiotis Georgiadis
    HBM Netherlands B.V.
    www.twitter.com/HimWithCurls
    Δημοσίευση στην κατηγορία:
Δείτε όλες τις δημοσιεύσεις της Θεματική Ενότητας
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems