idf_monitor: fix gdb issue opening large COM port on Windows

The GDB uses CreateFile to open COM port on Windows. However this
function requires COM path to be `\\.\COMx` to open COM port whose
number is larger than 10.

Replace the port name from `COM` to `\\.\COM` when on Windows to fix
this.
This commit is contained in:
Michael (XIAO Xufeng) 2020-02-15 16:53:58 +08:00 committed by bot
parent 23c62a4225
commit b00cea250f

View file

@ -931,7 +931,13 @@ def main():
args = parser.parse_args()
if args.port.startswith("/dev/tty."):
# GDB uses CreateFile to open COM port, which requires the COM name to be r'\\.\COMx' if the COM
# number is larger than 10
if os.name == 'nt' and args.port.startswith("COM"):
args.port = args.port.replace('COM', r'\\.\COM')
yellow_print("--- WARNING: GDB cannot open serial ports accessed as COMx")
yellow_print("--- Using %s instead..." % args.port)
elif args.port.startswith("/dev/tty."):
args.port = args.port.replace("/dev/tty.", "/dev/cu.")
yellow_print("--- WARNING: Serial ports accessed as /dev/tty.* will hang gdb if launched.")
yellow_print("--- Using %s instead..." % args.port)