Running External Programs under a Debugger

The Wolfram Symbolic Transfer Protocol (WSTP) allows you to run external programs under whatever debugger is provided in your software environment.
WSTPcompatible programs are typically set up to take arguments, usually on the command line, which specify what WSTP connections they should use.
In debugger:
run -linkcreate -linkprotocol TCPIP
In the Wolfram Language:
Install[LinkConnect["port",LinkProtocol->"TCPIP"]]
Running an external program under a debugger.
Note that in order to get a version of an external program that can be run under a debugger, you need to compile the program so that the output is suitable for use with your debugger. Unix compilers commonly use -g as a command-line argument for producing a debuggable program. See your compiler documentation for specific information on the steps you should take.

Unix debugger

Set a breakpoint in the C function f.
break f
Breakpoint set: f: line 1
Start the external program.
run -linkcreate -linkprotocol TCPIP 
The program responds with what port it is listening on.
Link created on: 2981@frog.wolfram.com,2982@frog.wolfram.com 

Wolfram System session

This connects to the program running under the debugger:
This calls a function that executes code in the external program:

Unix debugger

The external program stops at the breakpoint.
Breakpoint: f(16) 
This tells the debugger to continue.
continue 

Wolfram System session

Now f returns.