Gør gdb Listener Server Tilgængelig fra WSL2 (Ubuntu) på Windows Localhost Port 8888

Hvordan kan en gdb listener server, der er opsat på Windows localhost og lytter på port 8888, gøres tilgængelig fra WSL2 (Ubuntu), når Windows og WSL bruger forskellige netværksadaptere?

For at gøre en gdb listener server tilgængelig fra WSL2 (Ubuntu) på Windows localhost port 8888, skal du finde Windows IP-adressen fra WSL2, konfigurere Windows Firewall til at tillade forbindelser på port 8888, og derefter oprette forbindelse til serveren fra WSL2 ved hjælp af gdb.

Sådan gør du en gdb listener server tilgængelig fra WSL2 (Ubuntu) på Windows localhost port 8888

For at gøre en gdb listener server, der er opsat på Windows localhost og lytter på port 8888, tilgængelig fra WSL2 (Ubuntu), skal du følge disse trin:

  1. Find Windows IP-adressen fra WSL2:
    • Åbn din WSL2 terminal.
    • Kør følgende kommando for at finde Windows IP-adressen:
      cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
    • Noter IP-adressen, som vil blive brugt til at oprette forbindelse til Windows localhost.
  2. Konfigurer Windows Firewall:
    • Åbn Windows Firewall med avanceret sikkerhed.
    • Opret en ny indgående regel:
      • Vælg "Port" som regeltype.
      • Vælg "TCP" og specificer port 8888.
      • Vælg "Tillad forbindelsen".
      • Vælg de profiler, hvor reglen skal gælde (domæne, privat, offentlig).
      • Giv reglen et navn og gem den.
  3. Opret forbindelse til gdb listener server fra WSL2:
    • Åbn din WSL2 terminal.
    • Kør gdb og opret forbindelse til serveren ved hjælp af den fundne IP-adresse og port 8888:
      gdb -ex "target remote <Windows_IP>:8888"

Ved at følge disse trin kan du gøre en gdb listener server, der lytter på port 8888 på Windows localhost, tilgængelig fra WSL2 (Ubuntu), selvom Windows og WSL bruger forskellige netværksadaptere.