- Added TARGET_REQ_DEBUGCHAR target_request debugmsg. This

provides a better impeadance match for debug output char fn's, e.g. eCos.
- Line endings are now added at the caller site of command_print*(). command_print()
  still adds a line ending
- echo of commands in scripts are now available via debug_level instead of
  forced echo
- Added a USER_SAMELINE() for printing without a lineend.


git-svn-id: svn://svn.berlios.de/openocd/trunk@364 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe
2008-02-28 08:11:18 +00:00
parent b70e262867
commit 0689e3dd67
9 changed files with 112 additions and 72 deletions
+6 -7
View File
@@ -511,16 +511,14 @@ int gdb_output_con(connection_t *connection, char* line)
bin_size = strlen(line);
hex_buffer = malloc(bin_size*2 + 4);
hex_buffer = malloc(bin_size*2 + 2);
hex_buffer[0] = 'O';
for (i=0; i<bin_size; i++)
snprintf(hex_buffer + 1 + i*2, 3, "%2.2x", line[i]);
hex_buffer[bin_size*2+1] = '0';
hex_buffer[bin_size*2+2] = 'a';
hex_buffer[bin_size*2+3] = 0x0;
hex_buffer[bin_size*2+1] = 0;
gdb_put_packet(connection, hex_buffer, bin_size*2 + 3);
gdb_put_packet(connection, hex_buffer, bin_size*2 + 1);
free(hex_buffer);
return ERROR_OK;
@@ -529,7 +527,7 @@ int gdb_output_con(connection_t *connection, char* line)
int gdb_output(struct command_context_s *context, char* line)
{
/* this will be dumped to the log and also sent as an O packet if possible */
USER(line);
USER_SAMELINE(line);
return ERROR_OK;
}
@@ -605,7 +603,8 @@ int gdb_target_callback_event_handler(struct target_s *target, enum target_event
return ERROR_OK;
}
int gdb_new_connection(connection_t *connection)
{
gdb_connection_t *gdb_connection = malloc(sizeof(gdb_connection_t));
+21 -14
View File
@@ -77,8 +77,26 @@ int telnet_prompt(connection_t *connection)
int telnet_outputline(connection_t *connection, char* line)
{
telnet_write(connection, line, strlen(line));
return telnet_write(connection, "\r\n\0", 3);
/* process lines in buffer */
char *p=line;
do {
char *next = strchr(p, '\n');
if (next)
*next++ = 0;
telnet_write(connection, p, strlen(p));
if (next)
{
telnet_write(connection, "\r\n\0", 3);
}
p = next;
} while (p);
return ERROR_OK;
}
int telnet_output(struct command_context_s *cmd_ctx, char* line)
@@ -93,20 +111,9 @@ void telnet_log_callback(void *priv, const char *file, int line,
{
connection_t *connection = priv;
char *t = alloc_printf(format, args);
char *t2;
if (t == NULL)
return;
t2=t;
char *endline;
do
{
if ((endline=strchr(t2, '\n'))!=NULL)
{
*endline=0;
}
telnet_outputline(connection, t2);
t2=endline+1;
} while (endline);
telnet_outputline(connection, t);
free(t);
}