Możesz zostać przy Visualu bo tam będzie ci łatwiej debugować ma gui nakładkę na gdb albo swój debugger.
Gdb wymaga używania komend z konsoli, ale za to łatwiej się tam poruszać.
Powinieneś najpierw sprawdzić czy masz ścieżkę środowiskową PATH ustawioną na te binarki, wpisując po prostu w konsoli gcc albo g++.
Jak chcesz z konsoli korzystać to możesz albo użyć tych binarek co są z Visualem dostarczone.
Lub sobie po prostu zainstalować MinGW, Clang w windowsie.
Wiesz, że możesz sobie korzystać z linuxa pod windowsem jak zainstalujesz WSL.
Jak już odpalisz WSL - Windows subsystem for linux, to zainstaluj tam ubuntu, a potem w konsoli ubuntu wpisz apt install <nazwa czego potrzebujesz>. np. apt install build-essential
Menadżer sam pobierze wszystkie zależności.
gcc - kompilator do języka C
g++ - kompilator do języka C++
gcov - sprawdzanie pokrycia kodu.
gdb - debugger
make - narzędzie do automatycznej kompilacji
Pod linuxem działa też tui do gdb, które daje fajny podgląd na kod źródłowy debugowany, a także możesz językiem python debugować aplikacje uruchomiony wewnątrz dbg, możesz wystawić interface na zewnątrz i korzystać jak z interaktywnego pythona.
Musisz dostarczyć symbole debuggera do kompilowanej aplikacji wtedy możesz operować na zmiennych i nazwach funkcji wpisanych w programie.
czyli g++ -g projekt.cpp -o projekt.exe
Symbole debuggera zwierają ścieżki do kodów źródłowych i linie kodu do każdej linijki assemblera, a także nazwy symboli zmiennych i funkcji.
Ewentualnie na linuxie możesz łatwo zrobić swojego debuggera za pomocą syscalla ptrace.
Na windowsie jest też jakieś api adekwatne.