• 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
gdbproxy.c 77.9 KB