Memory blocks in the trace buffer are limited to 65K (to save a couple bytes in the length field, since most blocks are small), and a tester trying to collect a quarter-megabyte(!) C++ object ran into trouble with that. The fix is really a target-side thing, but the trace file reader needs to cognizant of this detail also. Fortunately, we can exploit GDB's partial xfer mechanism, and just return what we find in one block, expecting that GDB will re-request the remainder. I also made the tfile target has_all_memory, and added an emulation of QTro behavior, which lets disassembly and the like work, but rejects attempts to print non-constant globals that were not collected. Committed to trunk. Stan 2010-04-05 Stan Shebs * tracepoint.c: Include gdbcore.h. (tfile_xfer_partial): Return partial results, also try reading from executable. (tfile_has_all_memory): New function. (init_tfile_ops): Use it. * gdb.trace/tfile.c: Add a variable split across two blocks, and a constant global. * gdb.trace/tfile.exp: Try to print them.