+void gdbserver_t::handle_query(const std::vector<uint8_t> &packet)
+{
+ std::string name;
+ std::vector<uint8_t>::const_iterator iter = packet.begin() + 2;
+
+ consume_string(name, iter, packet.end(), ':');
+ if (iter != packet.end())
+ iter++;
+ if (name == "Supported") {
+ send("$");
+ running_checksum = 0;
+ while (iter != packet.end()) {
+ std::string feature;
+ consume_string(feature, iter, packet.end(), ';');
+ if (iter != packet.end())
+ iter++;
+ printf("is %s supported?\n", feature.c_str());
+ if (feature == "swbreak+") {
+ send("swbreak+;");
+ }
+ }
+ return send_running_checksum();
+ }
+
+ printf("Unsupported query %s\n", name.c_str());
+ return send_packet("");
+}
+