@@ -867,6 +867,22 @@ error replies.
867
867
**Priority To Implement:** Low. Only needed if the remote target wants to
868
868
provide strings that are human readable along with an error code.
869
869
870
+ ## QLaunchArch
871
+
872
+ Set the architecture to use when launching a process for hosts that can run
873
+ multiple architecture slices that are contained in a single universal program
874
+ file.
875
+
876
+ ```
877
+ send packet: $QLaunchArch:<architecture >
878
+ ```
879
+
880
+ The response is `OK` if the value in `<architecture>` was recognised as valid
881
+ and will be used for the next launch request. `E63` if not.
882
+
883
+ **Priority To Implement:** Only required for hosts that support program files
884
+ that contain code for multiple architectures.
885
+
870
886
## QListThreadsInStopReply
871
887
872
888
Enable the `threads:` and `thread-pcs:` data in the question-mark packet
@@ -1883,6 +1899,77 @@ some platforms know, or can find out where this information is.
1883
1899
Low if you have a debug target where all object and symbol files
1884
1900
contain static load addresses.
1885
1901
1902
+ ## qSpeedTest
1903
+
1904
+ Test the maximum speed at which packets can be sent and received.
1905
+
1906
+ ```
1907
+ send packet: qSpeedTest:response_size:<response size >;
1908
+ read packet: data:<response data >
1909
+ ```
1910
+
1911
+ `<response size>` is a hex encoded unsigned number up to 64 bits in size.
1912
+ The remote will respond with `data:` followed by a block of `a` characters
1913
+ whose size should match `<response size>`, if the connection is stable.
1914
+
1915
+ If there is an error parsing the packet, the response is `E79`.
1916
+
1917
+ This packet is used by LLDB to discover how reliable the connection is by
1918
+ varying the amount of data requested by `<response size>` and checking whether
1919
+ the expected amount and values were received.
1920
+
1921
+ **Priority to Implemment:** Not required for debugging on the same host, otherwise
1922
+ low unless you know your connection quality is variable.
1923
+
1924
+ ## qSymbol
1925
+
1926
+ Notify the remote that LLDB is ready to do symbol lookups on behalf of the
1927
+ debug server. The response is the symbol name the debug server wants to know the
1928
+ value of, or `OK` if the debug server does not need to know any more symbol values.
1929
+
1930
+ The exchange always begins with:
1931
+ ```
1932
+ send packet: qSymbol::
1933
+ ```
1934
+
1935
+ The `::` are delimiters for fields that may be filled in future responses. These
1936
+ delimiters must be included even in the first packet sent.
1937
+
1938
+ The debug server can reply one of two ways. If it doesn't need any symbol values:
1939
+ ```
1940
+ read packet: OK
1941
+ ```
1942
+
1943
+ If it does need a symbol value, it includes the ASCII hex encoded name of the
1944
+ symbol:
1945
+ ```
1946
+ read packet: qSymbol:6578616D706C65
1947
+ ```
1948
+
1949
+ This should be looked up by LLDB then sent back to the server. Include the name
1950
+ again, with the vaue as a hex number:
1951
+ ```
1952
+ read packet: qSymbol:6578616D706C65: CAFEF00D
1953
+ ```
1954
+
1955
+ If LLDB cannot find the value, it should respond with only the name. Note that
1956
+ the second `:` is not included here, whereas it is in the initial packet.
1957
+ ```
1958
+ read packet: qSymbol:6578616D706C65
1959
+ ```
1960
+
1961
+ If LLDB is asked for any symbols that it cannot find, it should send the
1962
+ initial `qSymbol::` again at any point where new libraries are loaded. In case
1963
+ the symbol can now be resolved.
1964
+
1965
+ If the debug server has requested all the symbols it wants, the final response
1966
+ will be `OK` (whether they were all found or not).
1967
+
1968
+ If LLDB did find all the symbols and recieves an `OK` it does not need to send
1969
+ `qSymbol::` again during the debug session.
1970
+
1971
+ **Priority To Implement:** Low, this is rarely used.
1972
+
1886
1973
## qThreadStopInfo\<tid\>
1887
1974
1888
1975
Get information about why a thread, whose ID is `<tid>`, is stopped.
0 commit comments