Yes, I suppose there is some hardware involved...
If you have either a NodeMCU, the connections are shown below. Huzzah uses the same pin names, but the physical pin numbers are different.
ESP8266 Signal ESP8266 Pin NodeMCU Signal NodeMCU Pin JTAG20 Signal JTAG20 Pin
VDDPST 17 VDD3V 1 on J2 VDD 1
VDD PAD GND 2 on J2 GND 4
MTDI 10 GPIO12 7 on J2 TDI 5
MTMS 9 GPIO14 8 on J2 TMS 7
MTCK 12 GPIO13 6 on J2 TCK 9
MTDO 13 GPIO15 5 on J2 TDO 13
EXT_RSTB 32 RST 3 on J1 nTRST or nSRST 3 (Olimex) or 15 (Segger)
These pinouts were borrowed from:
https://visualgdb.com/tutorials/esp8266/nodemcu/jtag/ The ESP8266 is a little quirky when jtag starts (It doesn't always respond to JTAG commands when a program is already running, but once GDB issues a "mon reset halt", the ESP8266 JTAG wakes up and listens to commands from that point forward.
I think once we can get microGDB talking to the ElfGDB, the reset of the details will sort themselves out as GDB is GDB (I hope).