protected void assertBreakLoc(TraceObjectValue locVal, String key, Address addr, int len,
			Set<TraceBreakpointKind> kinds, String expression) throws Exception {
		assertEquals(key, locVal.getEntryKey());
		TraceObject loc = locVal.getChild();
		TraceObject spec = loc.getCanonicalParent(0).getParent();
		assertEquals(new AddressRangeImpl(addr, len), loc.getValue(0, "_range").getValue());
		assertEquals(TraceBreakpointKindSet.encode(kinds), spec.getValue(0, "_kinds").getValue());
		assertEquals(expression, spec.getValue(0, "_expression").getValue());
	}
This seems like a bug in gdb. AFAICT, it's a rehash or regression of
https://sourceware.org/bugzilla/show_bug.cgi?id=17247. If I attach to the
hung gdb, I get a similar stack trace, but with Python frames on the
stack. The workaround given in the comments works here, too. I hesitate
to point fingers, though, because I'm testing with a modern gdb-13.1
compiled from source on a rather un-modern distro.
Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/AbstractGdbTraceRmiTest.java