Aracılığıyla paylaş


WinDbg Kullanarak Uzaktan Hata Ayıklama

Uzaktan hata ayıklama, farklı bir bilgisayarda çalışan kodda hata ayıklamanıza olanak tanır. Bu kılavuzda, bir hata ayıklama sunucusu ayarlama ve hata ayıklama oturumunuzu uzaktan denetlemek için bir hata ayıklama istemcisi bağlama gösterilmektedir. Her iki bileşeni de yapılandırma adımlarını öğreneceksiniz.

Hata ayıkladığınız kod, hata ayıklama sunucusuyla aynı bilgisayarda veya ayrı bir bilgisayarda çalışabilir. Hata ayıklama sunucusu kullanıcı modu hata ayıklaması gerçekleştiriyorsa, hata ayıklama işleminiz hata ayıklama sunucusuyla aynı bilgisayarda çalıştırılabilir. Hata ayıklama sunucusu çekirdek modunda hata ayıklama gerçekleştirirse, hata ayıkladığınız kod genellikle ayrı bir hedef bilgisayarda çalışır.

Bu diyagramda, üç bilgisayarın tipik bir uzaktan hata ayıklama kurulumunda nasıl birlikte çalıştığı gösterilmektedir:

Çekirdek modu hata ayıklaması için bağlı uzak, konak ve hedef bilgisayarları gösteren diyagramın ekran görüntüsü.

Önemli

Uzaktan hata ayıklama, sisteminizi olası güvenlik risklerine maruz bırakır. Devam etmeden önce:

Uzaktan hata ayıklama bağlantısı için çeşitli aktarım protokolleri kullanabilirsiniz: TCP, NPIPE, SPIPE, SSL ve COM Bağlantı Noktası. Protokol olarak TCP'yi ve hem hata ayıklama istemcisi hem de hata ayıklama sunucusu olarak WinDbg'yi seçtiğinizi varsayalım. Uzaktan çekirdek modu hata ayıklama oturumu başlatmak için aşağıdaki prosedürü kullanın.

  1. Ana bilgisayarda WinDbg'yi açın ve hedef bilgisayarla çekirdek modu hata ayıklama oturumu oluşturun. (Bkz. WinDbg (Klasik) Kullanarak Canlı Kernel-Mode Hata Ayıklama.)

  2. Hata Ayıklama menüsünden Kesme seçerek veya CTRL-Break tuşlarına basarak ara verin.

  3. Hata Ayıklayıcı Komut Penceresi'de şu aşağıdaki komutu girin.

    .server tcp:port=5005

    Uyarı

    5005 numaralı bağlantı noktası rastgeledir. Bağlantı noktası numarasını seçersiniz.

  4. WinDbg aşağıdakine benzer bir çıkışla yanıt verir. Bağlantı dizesini kopyalayın; sonraki adım için bu dizeye ihtiyacınız olacaktır.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. Uzak bilgisayarda WinDbg'yi açın ve Dosya menüsünden Uzak Oturuma Bağlan seçeneğini seçin.

  6. Bağlantı Dizesialtına aşağıdaki dizeyi girin.

    tcp:Port=5005,Server=YourHostComputer

    burada YourHostComputer , hata ayıklama sunucusunu çalıştıran ana bilgisayarınızın adıdır.

    OKseçin.

Komut Satırını Kullanma

Önceki bölümdeki yordama alternatif olarak, komut satırında bir uzaktan hata ayıklama oturumu ayarlayabilirsiniz. Kanal 32'de bir 1394 kablosu üzerinden bir konak bilgisayar ile hedef bilgisayar arasında çekirdek modu hata ayıklama oturumu oluşturmak istediğinizi varsayalım. Uzaktan hata ayıklama oturumu oluşturmak için aşağıdaki yordamı kullanın:

  1. Ana bilgisayarda, Komut İstemi penceresine aşağıdaki komutu girin.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. Sunucunun başlatılmasını bekleyin. Bağlantı ayrıntılarını içeren bir onay iletisi görürsünüz. 3. adıma geçmeden önce bu bağlantı dizesini kopyalayın.

  3. Uzak bilgisayarda, Komut İstemi penceresine aşağıdaki komutu girin.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    burada YourHostComputer , hata ayıklama sunucusunu çalıştıran ana bilgisayarınızın adıdır.

Önemli

1394 aktarımı Windows 10, sürüm 1607 ve önceki sürümlerde kullanılabilir. Windows'un sonraki sürümlerinde kullanılamaz. Projelerinizi Ethernet kullanarak KDNET gibi diğer aktarımlara geçirebilirsiniz. Bu aktarım hakkında daha fazla bilgi için bkz. KDNET Ağ Çekirdeği Hata Ayıklamayı Otomatik Olarak Ayarlama.

Sonraki Adımlar

Uzaktan hata ayıklamayı bu konuda gösterilenler dışında birçok yolla oluşturabilirsiniz.

  • WinDbg Hata Ayıklayıcısı Komut Penceresibir hata ayıklama sunucusu ayarlama hakkında tam bilgi için bkz..server (Hata Ayıklama Sunucusu Oluşturma) .
  • Komut satırında WinDbg'yi başlatma (ve uzaktan hata ayıklamayı oluşturma) hakkında tam bilgi için bkz. WinDbg Command-Line Seçenekleri.