2005-02-08 Nathan Sidwell * tracepoint.c (target_is_remote): Allow extended-remote. (struct collection_list): Allow 256 registers, like the comment said. (add_memrange): Fix comment. (read_actions): Turn EOF into 'end'. (trace_status_command): Print the status. (finish_tfind_command): Use sscanf not strtol. Index: tracepoint.c =================================================================== RCS file: /cvs/src/src/gdb/tracepoint.c,v retrieving revision 1.68 diff -c -3 -p -r1.68 tracepoint.c *** tracepoint.c 2 Feb 2005 00:20:05 -0000 1.68 --- tracepoint.c 8 Feb 2005 11:31:20 -0000 *************** static int *** 164,170 **** target_is_remote (void) { if (current_target.to_shortname && ! strcmp (current_target.to_shortname, "remote") == 0) return 1; else return 0; --- 164,171 ---- target_is_remote (void) { if (current_target.to_shortname && ! (strcmp (current_target.to_shortname, "remote") == 0 ! || strcmp (current_target.to_shortname, "extended-remote") == 0)) return 1; else return 0; *************** read_actions (struct tracepoint *t) *** 860,865 **** --- 861,869 ---- else line = gdb_readline (0); + if (!line) + line = "end"; + linetype = validate_actionline (&line, t); if (linetype == BADLINE) continue; /* already warned -- collect another line */ *************** struct memrange *** 1074,1080 **** struct collection_list { ! unsigned char regs_mask[8]; /* room for up to 256 regs */ long listsize; long next_memrange; struct memrange *list; --- 1078,1084 ---- struct collection_list { ! unsigned char regs_mask[32]; /* room for up to 256 regs */ long listsize; long next_memrange; struct memrange *list; *************** add_memrange (struct collection_list *me *** 1171,1177 **** printf_filtered (",%ld)\n", len); } ! /* type: 0 == memory, n == basereg */ memranges->list[memranges->next_memrange].type = type; /* base: addr if memory, offset if reg relative. */ memranges->list[memranges->next_memrange].start = base; --- 1175,1181 ---- printf_filtered (",%ld)\n", len); } ! /* type: -1 == memory, n == basereg */ memranges->list[memranges->next_memrange].type = type; /* base: addr if memory, offset if reg relative. */ memranges->list[memranges->next_memrange].start = base; *************** trace_status_command (char *args, int fr *** 1873,1878 **** --- 1877,1886 ---- /* exported for use by the GUI */ trace_running_p = (target_buf[1] == '1'); + if (trace_running_p) + printf_filtered ("Trace is running.\n"); + else + printf_filtered ("Trace is not running.\n"); } else error ("Trace can only be run on remote targets."); *************** finish_tfind_command (char *msg, *** 1888,1893 **** --- 1896,1902 ---- CORE_ADDR old_frame_addr; struct symbol *old_func; char *reply; + int len; old_frame_addr = get_frame_base (get_current_frame ()); old_func = find_pc_function (read_pc ()); *************** finish_tfind_command (char *msg, *** 1899,1905 **** switch (*reply) { case 'F': ! if ((target_frameno = (int) strtol (++reply, &reply, 16)) == -1) { /* A request for a non-existant trace frame has failed. Our response will be different, depending on FROM_TTY: --- 1908,1916 ---- switch (*reply) { case 'F': ! sscanf (reply, "F%X%n", &target_frameno, &len); ! reply += len; ! if (target_frameno == -1) { /* A request for a non-existant trace frame has failed. Our response will be different, depending on FROM_TTY: *************** finish_tfind_command (char *msg, *** 1937,1943 **** } break; case 'T': ! if ((target_tracept = (int) strtol (++reply, &reply, 16)) == -1) error ("Target failed to find requested trace frame."); break; case 'O': /* "OK"? */ --- 1948,1956 ---- } break; case 'T': ! sscanf (reply, "T%X%n", &target_tracept, &len); ! reply += len; ! if (target_tracept == -1) error ("Target failed to find requested trace frame."); break; case 'O': /* "OK"? */