cisco-open / llvm-crash-analyzer

llvm crash analysis
Apache License 2.0
40 stars 17 forks source link

Partial changes to complete the initial handshake with gdb client. #51

Closed gsidhard closed 1 year ago

gsidhard commented 1 year ago

Description

Implemented part of the initial handshake with gdb client. For this we need to send a packet to gdb claiming that we are stopped with a signal. Other changes include placeholder code for processes (CoreFileProtocol), threads (CoreThreadProtocol) and registers (CoreRegisterContext). With this change gdb receives the thread and process id from the server. For example, if we turn on packet debugging in the client with 'set debug remote 1', we can see this:

[remote] Sending packet: $?#3f [remote] Packet received: T0bthread:p30d3d2.30d3d2; [remote] Sending packet: $qfThreadInfo#bb [remote] Packet received: mp30d3d2.30d3d2 [remote] Sending packet: $qsThreadInfo#c8 [remote] Packet received: l [remote] Sending packet: $qAttached:30d3d2#59 [remote] Packet received: [remote] packet_ok: Packet qAttached (query-attached) is NOT supported warning: No executable has been specified and target does not support determining executable automatically. Try using the "file" command. [remote] Sending packet: $Hc-1#09 [remote] Packet received: Eff [remote] wait: enter [remote] wait: exit [remote] Sending packet: $g#67 [remote] Packet received: E15

The client doesn't get the correct response for the 'g' packet, and so it bails at this point. I verified that the pid+tid combo we get in the client is the correct one retrieved from the corefile.

Type of Change

Checklist