Lines Matching +full:pc +full:- +full:ack
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
73 cur_pri = -1;
76 pri = (dp->gdb_probe != NULL) ? dp->gdb_probe() : -1;
77 dp->gdb_active = (pri >= 0) ? 0 : -1;
87 if (dp->gdb_active == 0)
88 printf(" %s", dp->gdb_name);
94 gdb_cur->gdb_init();
95 printf("GDB: current port: %s\n", gdb_cur->gdb_name);
101 cur_pri = -1;
157 gdb_tx_varhex((*thr_iter)->td_tid);
189 [GDB_FORK_EVENTS] = "fork-events",
190 [GDB_VFORK_EVENTS] = "vfork-events",
191 [GDB_EXEC_EVENTS] = "exec-events",
194 [GDB_NO_RESUMED] = "no-resumed",
216 toklen = (delim - tok);
219 gdb_rxsz -= toklen;
223 gdb_rxsz -= 1;
229 ok = tok[toklen - 1];
230 if (ok != '-' && ok != '+') {
232 * GDB only has one KV-pair feature, and we don't
237 /* Not a KV-pair, and not a +/- flag? Malformed. */
242 tok[toklen - 1] = '\0';
266 gdb_tx_varhex(GDB_BUFSZ + strlen("$#nn") - 1);
276 * If the debugport is a reliable transport, request No Ack mode from
277 * the server. The server may or may not choose to enter No Ack mode.
278 * https://sourceware.org/gdb/onlinedocs/gdb/Packet-Acknowledgment.html
280 if (gdb_cur->gdb_dbfeatures & GDB_DBGP_FEAT_RELIABLE)
285 * - vCont
286 * - multiprocess
297 * A qXfer_context provides a vaguely generic way to generate a multi-packet
299 * vs actual packet length constraints. A non-byzantine gdb host should allow
319 return (-EINVAL);
322 if (qx->flushed) {
328 return (-ENOBUFS);
331 qx->last_offset += len;
332 qx->flushed = true;
334 if (qx->lastmessage)
354 len -= 4;
355 len = ummin(len, GDB_BUFSZ - 1);
357 qx->last_offset = 0;
358 qx->flushed = false;
359 qx->lastmessage = false;
360 sbuf_new(&qx->sb, qx->xfer_buf, len, SBUF_FIXEDLEN);
361 sbuf_set_drain(&qx->sb, qXfer_drain, qx);
376 for (i = 0; i < dstlen - 1 && *src != 0; src++, i++) {
414 * [0]: https://sourceware.org/gdb/current/onlinedocs/gdb/Thread-List-Format.html
482 (uintmax_t)ctx.iter->td_tid);
487 if (ctx.iter->td_oncpu != NOCPU) {
489 ctx.iter->td_oncpu);
496 if (ctx.iter->td_name[0] != 0)
497 name_src = ctx.iter->td_name;
498 else if (ctx.iter->td_proc != NULL &&
499 ctx.iter->td_proc->p_comm[0] != 0)
500 name_src = ctx.iter->td_proc->p_comm;
567 * GDB "General-Query-Packets.html" qXfer-read anchor specifically
569 * Non-zero codes indicate invalid offset or "error reading the data."
607 if (gdb_cur->gdb_dbfeatures & GDB_DBGP_FEAT_WANTTERM)
608 gdb_cur->gdb_term();
754 gdb_tx_varhex((uintmax_t)kdb_thread->td_tid);
766 gdb_tx_varhex((long)kdb_thread->td_tid);
772 register_t pc;
774 pc = addr;
775 gdb_cpu_setreg(GDB_REG_PC, &pc);
783 register_t pc;
786 pc = addr;
787 gdb_cpu_setreg(GDB_REG_PC, &pc);
903 gdb_tx_varhex((long)kdb_thread->td_tid);
925 if ((gdb_cur->gdb_dbfeatures &
941 register_t pc;
943 pc = addr;
944 gdb_cpu_setreg(GDB_REG_PC, &pc);
952 register_t pc;
955 pc = addr;
956 gdb_cpu_setreg(GDB_REG_PC, &pc);