Lines Matching defs:RNBRemote
1 //===-- RNBRemote.cpp -------------------------------------------*- C++ -*-===//
13 #include "RNBRemote.h"
195 RNBRemote::RNBRemote()
211 RNBRemote::~RNBRemote() {
216 void RNBRemote::CreatePacketTable() {
218 // 1 - Add new enumeration to RNBRemote::PacketEnum
219 // 2 - Create the RNBRemote::HandlePacket_ function if a new function is
232 // in RNBRemote::CommDataReceived so it doesn't reject the new packet
235 // in RNBRemote::GetPacketPayload and make sure the payload of the
242 t.push_back(Packet(read_memory, &RNBRemote::HandlePacket_m, NULL, "m",
244 t.push_back(Packet(read_register, &RNBRemote::HandlePacket_p, NULL, "p",
246 t.push_back(Packet(read_general_regs, &RNBRemote::HandlePacket_g, NULL, "g",
248 t.push_back(Packet(write_memory, &RNBRemote::HandlePacket_M, NULL, "M",
250 t.push_back(Packet(write_register, &RNBRemote::HandlePacket_P, NULL, "P",
252 t.push_back(Packet(write_general_regs, &RNBRemote::HandlePacket_G, NULL, "G",
254 t.push_back(Packet(insert_mem_bp, &RNBRemote::HandlePacket_z, NULL, "Z0",
256 t.push_back(Packet(remove_mem_bp, &RNBRemote::HandlePacket_z, NULL, "z0",
258 t.push_back(Packet(single_step, &RNBRemote::HandlePacket_s, NULL, "s",
260 t.push_back(Packet(cont, &RNBRemote::HandlePacket_c, NULL, "c", "continue"));
261 t.push_back(Packet(single_step_with_sig, &RNBRemote::HandlePacket_S, NULL,
264 Packet(set_thread, &RNBRemote::HandlePacket_H, NULL, "H", "Set thread"));
265 t.push_back(Packet(halt, &RNBRemote::HandlePacket_last_signal,
266 &RNBRemote::HandlePacket_stop_process, "\x03", "^C"));
268 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "!", "Use extended mode"));
269 t.push_back(Packet(why_halted, &RNBRemote::HandlePacket_last_signal, NULL,
272 Packet(set_argv, &RNBRemote::HandlePacket_A, NULL, "A", "Set argv"));
274 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "B", "Set/clear
276 t.push_back(Packet(continue_with_sig, &RNBRemote::HandlePacket_C, NULL, "C",
278 t.push_back(Packet(detach, &RNBRemote::HandlePacket_D, NULL, "D",
281 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "i", "Step inferior by one
284 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "I", "Signal inferior, then
286 t.push_back(Packet(kill, &RNBRemote::HandlePacket_k, NULL, "k", "Kill"));
288 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "R", "Restart inferior"));
290 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "t", "Search memory
292 t.push_back(Packet(thread_alive_p, &RNBRemote::HandlePacket_T, NULL, "T",
295 &RNBRemote::HandlePacket_qSupported, NULL, "qSupported",
297 t.push_back(Packet(vattach, &RNBRemote::HandlePacket_v, NULL, "vAttach",
299 t.push_back(Packet(vattachwait, &RNBRemote::HandlePacket_v, NULL,
302 t.push_back(Packet(vattachorwait, &RNBRemote::HandlePacket_v, NULL,
306 t.push_back(Packet(vattachname, &RNBRemote::HandlePacket_v, NULL,
308 t.push_back(Packet(vcont_list_actions, &RNBRemote::HandlePacket_v, NULL,
310 t.push_back(Packet(vcont_list_actions, &RNBRemote::HandlePacket_v, NULL,
313 t.push_back(Packet(read_data_from_memory, &RNBRemote::HandlePacket_x, NULL,
315 t.push_back(Packet(write_data_to_memory, &RNBRemote::HandlePacket_X, NULL,
317 t.push_back(Packet(insert_hardware_bp, &RNBRemote::HandlePacket_z, NULL, "Z1",
319 t.push_back(Packet(remove_hardware_bp, &RNBRemote::HandlePacket_z, NULL, "z1",
321 t.push_back(Packet(insert_write_watch_bp, &RNBRemote::HandlePacket_z, NULL,
323 t.push_back(Packet(remove_write_watch_bp, &RNBRemote::HandlePacket_z, NULL,
325 t.push_back(Packet(insert_read_watch_bp, &RNBRemote::HandlePacket_z, NULL,
327 t.push_back(Packet(remove_read_watch_bp, &RNBRemote::HandlePacket_z, NULL,
329 t.push_back(Packet(insert_access_watch_bp, &RNBRemote::HandlePacket_z, NULL,
331 t.push_back(Packet(remove_access_watch_bp, &RNBRemote::HandlePacket_z, NULL,
333 t.push_back(Packet(query_monitor, &RNBRemote::HandlePacket_qRcmd, NULL,
335 t.push_back(Packet(query_current_thread_id, &RNBRemote::HandlePacket_qC, NULL,
337 t.push_back(Packet(query_echo, &RNBRemote::HandlePacket_qEcho, NULL, "qEcho:",
340 t.push_back(Packet(query_get_pid, &RNBRemote::HandlePacket_qGetPid, NULL,
343 &RNBRemote::HandlePacket_qThreadInfo, NULL, "qfThreadInfo",
346 &RNBRemote::HandlePacket_qThreadInfo, NULL, "qsThreadInfo",
352 &RNBRemote::HandlePacket_qThreadStopInfo, NULL,
356 &RNBRemote::HandlePacket_qThreadExtraInfo, NULL,
359 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "qOffsets", "Report offset
362 query_launch_success, &RNBRemote::HandlePacket_qLaunchSuccess, NULL,
365 Packet(query_register_info, &RNBRemote::HandlePacket_qRegisterInfo, NULL,
369 query_shlib_notify_info_addr, &RNBRemote::HandlePacket_qShlibInfoAddr,
373 &RNBRemote::HandlePacket_qStepPacketSupported, NULL,
378 &RNBRemote::HandlePacket_qVAttachOrWaitSupported, NULL,
383 &RNBRemote::HandlePacket_qSyncThreadStateSupported, NULL,
387 query_host_info, &RNBRemote::HandlePacket_qHostInfo, NULL, "qHostInfo",
390 query_gdb_server_version, &RNBRemote::HandlePacket_qGDBServerVersion,
394 query_process_info, &RNBRemote::HandlePacket_qProcessInfo, NULL,
398 query_symbol_lookup, &RNBRemote::HandlePacket_qSymbol, NULL, "qSymbol:",
401 &RNBRemote::HandlePacket_QEnableErrorStrings, NULL,
406 &RNBRemote::HandlePacket_jThreadExtendedInfo, NULL,
410 &RNBRemote::HandlePacket_jGetLoadedDynamicLibrariesInfos,
415 Packet(json_query_threads_info, &RNBRemote::HandlePacket_jThreadsInfo,
419 &RNBRemote::HandlePacket_jGetSharedCacheInfo, NULL,
423 t.push_back(Packet(start_noack_mode, &RNBRemote::HandlePacket_QStartNoAckMode,
428 &RNBRemote::HandlePacket_QThreadSuffixSupported, NULL,
433 t.push_back(Packet(set_logging_mode, &RNBRemote::HandlePacket_QSetLogging,
435 t.push_back(Packet(set_ignored_exceptions, &RNBRemote::HandlePacket_QSetIgnoredExceptions,
441 set_max_packet_size, &RNBRemote::HandlePacket_QSetMaxPacketSize, NULL,
445 set_max_payload_size, &RNBRemote::HandlePacket_QSetMaxPayloadSize, NULL,
449 Packet(set_environment_variable, &RNBRemote::HandlePacket_QEnvironment,
454 &RNBRemote::HandlePacket_QEnvironmentHexEncoded, NULL,
457 t.push_back(Packet(set_launch_arch, &RNBRemote::HandlePacket_QLaunchArch,
462 t.push_back(Packet(set_disable_aslr, &RNBRemote::HandlePacket_QSetDisableASLR,
466 t.push_back(Packet(set_stdin, &RNBRemote::HandlePacket_QSetSTDIO, NULL,
469 t.push_back(Packet(set_stdout, &RNBRemote::HandlePacket_QSetSTDIO, NULL,
472 t.push_back(Packet(set_stderr, &RNBRemote::HandlePacket_QSetSTDIO, NULL,
475 t.push_back(Packet(set_working_dir, &RNBRemote::HandlePacket_QSetWorkingDir,
480 &RNBRemote::HandlePacket_QListThreadsInStopReply, NULL,
485 sync_thread_state, &RNBRemote::HandlePacket_QSyncThreadState, NULL,
489 // &RNBRemote::HandlePacket_UNIMPLEMENTED, NULL, "QPassSignals:", "Specify
491 t.push_back(Packet(allocate_memory, &RNBRemote::HandlePacket_AllocateMemory,
494 &RNBRemote::HandlePacket_DeallocateMemory, NULL, "_m",
497 save_register_state, &RNBRemote::HandlePacket_SaveRegisterState, NULL,
501 &RNBRemote::HandlePacket_RestoreRegisterState, NULL,
506 memory_region_info, &RNBRemote::HandlePacket_MemoryRegionInfo, NULL,
509 t.push_back(Packet(get_profile_data, &RNBRemote::HandlePacket_GetProfileData,
513 &RNBRemote::HandlePacket_SetEnableAsyncProfiling, NULL,
517 &RNBRemote::HandlePacket_QEnableCompression, NULL,
521 &RNBRemote::HandlePacket_WatchpointSupportInfo, NULL,
525 &RNBRemote::HandlePacket_QSetProcessEvent, NULL,
530 Packet(set_detach_on_error, &RNBRemote::HandlePacket_QSetDetachOnError,
535 speed_test, &RNBRemote::HandlePacket_qSpeedTest, NULL, "qSpeedTest:",
537 t.push_back(Packet(query_transfer, &RNBRemote::HandlePacket_qXfer, NULL,
540 &RNBRemote::HandlePacket_jGetDyldProcessState, NULL,
545 void RNBRemote::FlushSTDIO() {
566 void RNBRemote::SendAsyncProfileData() {
580 rnb_err_t RNBRemote::SendHexEncodedBytePacket(const char *header,
599 rnb_err_t RNBRemote::SendSTDOUTPacket(char *buf, nub_size_t buf_size) {
605 rnb_err_t RNBRemote::SendSTDERRPacket(char *buf, nub_size_t buf_size) {
612 rnb_err_t RNBRemote::SendAsyncProfileDataPacket(char *buf,
623 RNBRemote::SendAsyncJSONPacket(const JSONGenerator::Dictionary &dictionary) {
643 std::string RNBRemote::CompressString(const std::string &orig) {
758 rnb_err_t RNBRemote::SendPacket(const std::string &s) {
759 DNBLogThreadedIf(LOG_RNB_MAX, "%8d RNBRemote::%s (%s) called",
786 RNBRemote::Packet packet;
791 "%8d RNBRemote::%s (%s) got error trying to get reply...",
797 DNBLogThreadedIf(LOG_RNB_MAX, "%8d RNBRemote::%s (%s) got reply: '%s'",
809 rnb_err_t RNBRemote::SendErrorPacket(std::string errcode,
822 rnb_err_t RNBRemote::GetPacketPayload(std::string &return_packet) {
823 // DNBLogThreadedIf (LOG_RNB_MAX, "%8u RNBRemote::%s called",
832 // DNBLogThreadedIf (LOG_RNB_MAX, "%8u RNBRemote::%s error: no packets
838 // DNBLogThreadedIf (LOG_RNB_MAX, "%8u RNBRemote::%s has %u queued packets",
850 // DNBLogThreadedIf (LOG_RNB_MEDIUM, "%8u RNBRemote::%s: '%s'",
867 DNBLogThreadedIf(LOG_RNB_REMOTE, "%8u RNBRemote::%s error: packet "
891 // DNBLogThreadedIf (LOG_RNB_MEDIUM, "%8u RNBRemote::%s sending ACK for
897 LOG_RNB_MEDIUM, "%8u RNBRemote::%s sending ACK for '%s' (error: "
909 "%8u RNBRemote::%s tossing unexpected packet???? %s",
920 rnb_err_t RNBRemote::HandlePacket_UNIMPLEMENTED(const char *p) {
921 DNBLogThreadedIf(LOG_RNB_MAX, "%8u RNBRemote::%s(\"%s\")",
927 rnb_err_t RNBRemote::HandlePacket_ILLFORMED(const char *file, int line,
936 rnb_err_t RNBRemote::GetPacket(std::string &packet_payload,
937 RNBRemote::Packet &packet_info, bool wait) {
996 rnb_err_t RNBRemote::HandleAsyncPacket(PacketEnum *type) {
997 DNBLogThreadedIf(LOG_RNB_REMOTE, "%8u RNBRemote::%s",
1003 RNBRemote::Packet packet_info;
1026 rnb_err_t RNBRemote::HandleReceivedPacket(PacketEnum *type) {
1029 // DNBLogThreadedIf (LOG_RNB_REMOTE, "%8u RNBRemote::%s",
1033 RNBRemote::Packet packet_info;
1054 void RNBRemote::CommDataReceived(const std::string &new_data) {
1055 // DNBLogThreadedIf (LOG_RNB_REMOTE, "%8d RNBRemote::%s called",
1108 // DNBLogThreadedIf (LOG_RNB_MAX, "%8d RNBRemote::%s saving data for
1117 // DNBLogThreadedIf (LOG_RNB_REMOTE, "%8d RNBRemote::%s throwing first
1130 "%8d RNBRemote::%s tossing junk byte at %c",
1141 // DNBLogThreadedIf (LOG_RNB_EVENTS, "%8d RNBRemote::%s called
1149 rnb_err_t RNBRemote::GetCommData() {
1150 // DNBLogThreadedIf (LOG_RNB_REMOTE, "%8d RNBRemote::%s called",
1161 void RNBRemote::StartReadRemoteDataThread() {
1162 DNBLogThreadedIf(LOG_RNB_REMOTE, "%8u RNBRemote::%s called",
1181 void RNBRemote::StopReadRemoteDataThread() {
1182 DNBLogThreadedIf(LOG_RNB_REMOTE, "%8u RNBRemote::%s called",
1201 void *RNBRemote::ThreadFunctionReadRemoteData(void *arg) {
1204 DNBLogThreadedIf(LOG_RNB_REMOTE, "RNBRemote::%s (%p): thread starting...",
1222 RNBRemote *remote = remoteSP.get();
1251 DNBLogThreadedIf(LOG_RNB_REMOTE, "RNBRemote::%s (%p): thread exiting...",
1365 void RNBRemote::Initialize() { DNBInitialize(); }
1367 bool RNBRemote::InitializeRegisters(bool force) {
1374 "RNBRemote::%s() getting native registers from DNB interface",
1484 void RNBRemote::NotifyThatProcessStopped(void) {
1485 RNBRemote::HandlePacket_last_signal(NULL);
1505 rnb_err_t RNBRemote::HandlePacket_A(const char *p) {
1584 rnb_err_t RNBRemote::HandlePacket_H(const char *p) {
1611 rnb_err_t RNBRemote::HandlePacket_qLaunchSuccess(const char *p) {
1618 rnb_err_t RNBRemote::HandlePacket_qShlibInfoAddr(const char *p) {
1631 rnb_err_t RNBRemote::HandlePacket_qStepPacketSupported(const char *p) {
1641 rnb_err_t RNBRemote::HandlePacket_qSyncThreadStateSupported(const char *p) {
1647 rnb_err_t RNBRemote::HandlePacket_qVAttachOrWaitSupported(const char *p) {
1653 rnb_err_t RNBRemote::HandlePacket_qThreadStopInfo(const char *p) {
1659 rnb_err_t RNBRemote::HandlePacket_qThreadInfo(const char *p) {
1688 rnb_err_t RNBRemote::HandlePacket_qThreadExtraInfo(const char *p) {
1775 rnb_err_t RNBRemote::HandlePacket_qRcmd(const char *p) {
1827 rnb_err_t RNBRemote::HandlePacket_qC(const char *p) {
1845 rnb_err_t RNBRemote::HandlePacket_qEcho(const char *p) {
1853 rnb_err_t RNBRemote::HandlePacket_qGetPid(const char *p) {
1866 rnb_err_t RNBRemote::HandlePacket_qRegisterInfo(const char *p) {
2256 rnb_err_t RNBRemote::HandlePacket_QSetIgnoredExceptions(const char *p) {
2287 rnb_err_t RNBRemote::HandlePacket_QThreadSuffixSupported(const char *p) {
2292 rnb_err_t RNBRemote::HandlePacket_QStartNoAckMode(const char *p) {
2299 rnb_err_t RNBRemote::HandlePacket_QSetLogging(const char *p) {
2308 rnb_err_t RNBRemote::HandlePacket_QSetDisableASLR(const char *p) {
2324 rnb_err_t RNBRemote::HandlePacket_QSetSTDIO(const char *p) {
2364 rnb_err_t RNBRemote::HandlePacket_QSetWorkingDir(const char *p) {
2386 rnb_err_t RNBRemote::HandlePacket_QSyncThreadState(const char *p) {
2408 rnb_err_t RNBRemote::HandlePacket_QSetDetachOnError(const char *p) {
2429 rnb_err_t RNBRemote::HandlePacket_QListThreadsInStopReply(const char *p) {
2450 rnb_err_t RNBRemote::HandlePacket_QSetMaxPayloadSize(const char *p) {
2466 rnb_err_t RNBRemote::HandlePacket_QSetMaxPacketSize(const char *p) {
2481 rnb_err_t RNBRemote::HandlePacket_QEnvironment(const char *p) {
2490 LOG_RNB_REMOTE, "%8u RNBRemote::%s Handling QEnvironment: \"%s\"",
2500 rnb_err_t RNBRemote::HandlePacket_QEnvironmentHexEncoded(const char *p) {
2512 "%8u RNBRemote::%s Handling QEnvironmentHexEncoded: \"%s\"",
2549 rnb_err_t RNBRemote::HandlePacket_QLaunchArch(const char *p) {
2556 rnb_err_t RNBRemote::HandlePacket_QSetProcessEvent(const char *p) {
2619 void RNBRemote::DispatchQueueOffsets::GetThreadQueueInfo(
2700 rnb_err_t RNBRemote::SendStopReplyPacketForThread(nub_thread_t tid) {
2713 RNBRemote::InitializeRegisters(true);
2968 rnb_err_t RNBRemote::HandlePacket_last_signal(const char *unused) {
3041 rnb_err_t RNBRemote::HandlePacket_M(const char *p) {
3114 rnb_err_t RNBRemote::HandlePacket_m(const char *p) {
3176 rnb_err_t RNBRemote::HandlePacket_x(const char *p) {
3240 rnb_err_t RNBRemote::HandlePacket_X(const char *p) {
3299 rnb_err_t RNBRemote::HandlePacket_g(const char *p) {
3335 rnb_err_t RNBRemote::HandlePacket_G(const char *p) {
3375 DNBLogError("RNBRemote::HandlePacket_G(%s): extracted %llu of %llu "
3387 RNBRemote *remote = remoteSP.get();
3406 rnb_err_t RNBRemote::HandlePacket_AllocateMemory(const char *p) {
3457 rnb_err_t RNBRemote::HandlePacket_DeallocateMemory(const char *p) {
3485 rnb_err_t RNBRemote::HandlePacket_SaveRegisterState(const char *p) {
3526 rnb_err_t RNBRemote::HandlePacket_RestoreRegisterState(const char *p) {
3576 rnb_err_t RNBRemote::HandlePacket_qSupported(const char *p) {
3785 rnb_err_t RNBRemote::HandlePacket_v(const char *p) {
3788 return RNBRemote::HandlePacket_c("c");
3791 return RNBRemote::HandlePacket_s("s");
4036 rnb_err_t RNBRemote::HandlePacket_T(const char *p) {
4061 rnb_err_t RNBRemote::HandlePacket_z(const char *p) {
4172 nub_thread_t RNBRemote::ExtractThreadIDFromThreadSuffix(const char *p) {
4190 rnb_err_t RNBRemote::HandlePacket_p(const char *p) {
4225 "RNBRemote::HandlePacket_p(%s): unknown register number %u requested\n",
4245 rnb_err_t RNBRemote::HandlePacket_P(const char *p) {
4285 "RNBRemote::HandlePacket_P(%s): unknown register number %u requested\n",
4311 rnb_err_t RNBRemote::HandlePacket_c(const char *p) {
4339 rnb_err_t RNBRemote::HandlePacket_MemoryRegionInfo(const char *p) {
4429 rnb_err_t RNBRemote::HandlePacket_GetProfileData(const char *p) {
4457 rnb_err_t RNBRemote::HandlePacket_SetEnableAsyncProfiling(const char *p) {
4495 rnb_err_t RNBRemote::HandlePacket_QEnableCompression(const char *p) {
4515 rnb_err_t RNBRemote::HandlePacket_qSpeedTest(const char *p) {
4535 rnb_err_t RNBRemote::HandlePacket_WatchpointSupportInfo(const char *p) {
4564 rnb_err_t RNBRemote::HandlePacket_C(const char *p) {
4604 rnb_err_t RNBRemote::HandlePacket_D(const char *p) {
4623 rnb_err_t RNBRemote::HandlePacket_k(const char *p) {
4632 rnb_err_t RNBRemote::HandlePacket_stop_process(const char *p) {
4643 DNBLogThreaded("RNBRemote::HandlePacket_stop_process() sending extra stop "
4654 rnb_err_t RNBRemote::HandlePacket_s(const char *p) {
4682 rnb_err_t RNBRemote::HandlePacket_S(const char *p) {
4828 rnb_err_t RNBRemote::HandlePacket_qHostInfo(const char *p) {
5215 rnb_err_t RNBRemote::HandlePacket_qXfer(const char *command) {
5292 rnb_err_t RNBRemote::HandlePacket_qGDBServerVersion(const char *p) {
5305 rnb_err_t RNBRemote::HandlePacket_jGetDyldProcessState(const char *p) {
5462 RNBRemote::GetJSONThreadsInfo(bool threads_with_valid_stop_info_only) {
5641 rnb_err_t RNBRemote::HandlePacket_jThreadsInfo(const char *p) {
5662 rnb_err_t RNBRemote::HandlePacket_jThreadExtendedInfo(const char *p) {
5932 RNBRemote::HandlePacket_jGetLoadedDynamicLibrariesInfos(const char *p) {
5983 rnb_err_t RNBRemote::HandlePacket_jGetSharedCacheInfo(const char *p) {
6153 rnb_err_t RNBRemote::HandlePacket_qSymbol(const char *command) {
6206 rnb_err_t RNBRemote::HandlePacket_QEnableErrorStrings(const char *p) {
6267 rnb_err_t RNBRemote::HandlePacket_qProcessInfo(const char *p) {
6480 const RNBRemote::DispatchQueueOffsets *RNBRemote::GetDispatchQueueOffsets() {
6498 void RNBRemote::EnableCompressionNextSendPacket(compression_types type) {
6503 compression_types RNBRemote::GetCompressionType() {