• Jinoh Kang's avatar
    winedbg: Escape special characters in GDB packet reply. · f3478b4e
    Jinoh Kang authored
    There are four special characters in GDB's remote serial protocol:
    
    - '$' (0x24): start of packet
    - '}' (0x7D): escape
    - '*' (0x2A): run-length encoding repeat count delimiter
    - '#' (0x23): end of packet; start of checksum
    
    In particular, the '#' and '}' characters are problematic since they
    are often used in library filenames.  A few examples:
    
    - %SystemRoot%\assembly\NativeImages_v[.NET ver]\[module+hash]#\*\*.dll
    - {CLSID or UUID}\*\.dll
    
    To make GDB happy with those filenames, we scan for those characters and
    escape them properly.
    
    While we are at it, also remove the assert in the packet_reply function
    that checks for '$' and '#' in the packet payload.
    Signed-off-by: 's avatarJinoh Kang <jinoh.kang.kr@gmail.com>
    Signed-off-by: 's avatarRémi Bernon <rbernon@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    f3478b4e
Name
Last commit
Last update
..
Makefile.in Loading commit data...
README Loading commit data...
be_arm.c Loading commit data...
be_arm64.c Loading commit data...
be_cpu.h Loading commit data...
be_i386.c Loading commit data...
be_x86_64.c Loading commit data...
break.c Loading commit data...
crashdlg.c Loading commit data...
db_disasm.c Loading commit data...
db_disasm64.c Loading commit data...
dbg.y Loading commit data...
debug.l Loading commit data...
debugger.h Loading commit data...
display.c Loading commit data...
expr.c Loading commit data...
expr.h Loading commit data...
gdbproxy.c Loading commit data...
info.c Loading commit data...
intvar.h Loading commit data...
memory.c Loading commit data...
resource.h Loading commit data...
source.c Loading commit data...
stack.c Loading commit data...
symbol.c Loading commit data...
tgt_active.c Loading commit data...
tgt_minidump.c Loading commit data...
tgt_module.c Loading commit data...
types.c Loading commit data...
winedbg.c Loading commit data...
winedbg.man.in Loading commit data...
winedbg.manifest Loading commit data...
winedbg.rc Loading commit data...