2012-05-18 14 views
9

Üzerinde çalıştığım bir çekirdek modu sürücüsünden hata ayıklama çıktısını görmek zor.DbgPrint çıktısını çekirdek modu sürücümden nasıl görebilirim?

Sürücü geliştirmede yeniyim. Windows XP'de bir USB sürücüsünde hata ayıklamaya çalışıyorum. DDK'yı kurdum ve sürücümün "kontrol edilen mod" yapısını oluşturdum. Sürücüyü kurdum ve sürücümün .sys dosyasına windows/drivers'da bakmak için bir hex editörü kullanırsam, debug çıkış dizelerimin metnini görebilirim.

Visual Studio altındaki sürücüyü kullanan bir uygulamayı çalıştırırsam, uygulamanın kendi hata ayıklama çıktısı olduğu için hata ayıklama çıktısı çıkış penceresinde görünmez. Web’de arama yaparken, hata ayıklama çıktısını çekirdeğinden nasıl görüntüleyeceğine dair pek çok farklı iddia buluyorum. Çekirdek hata ayıklaması için genelde insanlar NULL modem kablosu üzerinden uzaktan hata ayıklama yapıyor gibi görünüyorlar (Crikey, 2012) ya da sanal bir makine ve sanal bir bağlantı noktası kullanıyorlar. Her iki yaklaşım da sadece hata ayıklama çıktısını görebilmek için büyük miktarda iş gibi görünüyor. Alternatif var mı?

"Yerel" çekirdek hata ayıklama modunda WinDbg kullanmayı denedim, ancak hiçbir şey göstermiyor. "/ Debug" etkinken pencereleri yeniden başlatmam gerektiği konusunda uyardı. Bunu yaptım ama yardımcı olmadı.

Başka bir fikrin var mı? Yoksa imkansızı mı soruyorum?

cevap

10

DebugView size sürücüsünden iz mesajları gösterecektir:

http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

Ancak, gerçekten bir iki makineyi ihtiyacım var herhangi bir gerçek geliştirme çalışması yapmak için kurulum.

+0

Teşekkür ederiz. İşe yaradı. DbgView'ın, Visual Studio'nun çıktı penceresinde görüntülediği gibi aynı hata ayıklama akışını gösterebileceğini düşündüm, ancak bu doğru değil. –

+0

BTW, Windows'un çalışması için "/ debug" etkin olarak önyükleme yapmaya gerek yoktur. –

1

Bulduğunuz bilgiler doğru. Çekirdek modu sürücülerinde hata ayıklamak için 2 makineye ihtiyacınız var.

2 fiziksel makineyi kullanmayı seçerseniz, USB üzerinden bağlanabilirler. NULL modem (COM bağlantı noktası), sanal makineye VM'nin COM bağlantı noktasının ana makinede adlandırılmış bir boru olarak görüldüğü bir sanal makineye eklenmesinin yaygın bir yoludur, bu nedenle NULL modem kablosuna ihtiyacınız yoktur. linkleri

http://msdn.microsoft.com/en-us/library/ff538141.aspx

ait

Çift

http://msdn.microsoft.com/en-us/library/ff542279.aspx

+2

Sorumu cevaplamak için zaman ayırdığınız için teşekkür ederiz. Cevabın biraz yanıltıcı olduğunu düşünüyorum çünkü 2 makineden istediğimi yapabilirim. Ancak, kesme noktaları vb. Ile tam hata ayıklama yapmak istiyorsanız 2 makineye ihtiyaç olduğunu kabul ediyorum. –

İlgili konular