This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit e5a7f55d9f8e300f0b47f9d89a9a9e44c686bf02
Author: xuxingliang <xuxingli...@xiaomi.com>
AuthorDate: Thu Dec 26 02:02:17 2024 +0800

    libc/gdbstub: use rawsyslog for debug log
    
    To avoid new line for every character.
    
    Signed-off-by: xuxingliang <xuxingli...@xiaomi.com>
---
 libs/libc/gdbstub/lib_gdbstub.c | 35 ++++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/libs/libc/gdbstub/lib_gdbstub.c b/libs/libc/gdbstub/lib_gdbstub.c
index c4a619a4ea7..28b56c64241 100644
--- a/libs/libc/gdbstub/lib_gdbstub.c
+++ b/libs/libc/gdbstub/lib_gdbstub.c
@@ -29,7 +29,6 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdio.h>
-#include <syslog.h>
 #include <sys/param.h>
 #include <sys/types.h>
 
@@ -38,13 +37,16 @@
 #include <nuttx/ascii.h>
 #include <nuttx/gdbstub.h>
 #include <nuttx/memoryregion.h>
+#include <nuttx/streams.h>
 
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
 
 #ifdef CONFIG_LIB_GDBSTUB_DEBUG
-#  define GDB_DEBUG(...) syslog(LOG_DEBUG, ##__VA_ARGS__)
+#  define GDB_DEBUG(stat, ...) \
+          lib_sprintf((FAR struct lib_outstream_s *)&state->stream, \
+                      ##__VA_ARGS__)
 #  define GDB_ASSERT() __assert(__FILE__, __LINE__, 0)
 #else
 #  define GDB_DEBUG(...)
@@ -66,6 +68,9 @@ static const struct memory_region_s g_memory_region[] =
 
 struct gdb_state_s
 {
+#ifdef CONFIG_LIB_GDBSTUB_DEBUG
+  struct lib_syslograwstream_s stream;
+#endif
   gdb_send_func_t send;                   /* Send buffer to gdb */
   gdb_recv_func_t recv;                   /* Recv buffer from gdb */
   FAR void *priv;                         /* Private data for transport */
@@ -341,20 +346,20 @@ static int gdb_send_packet(FAR struct gdb_state_s *state)
 #ifdef CONFIG_LIB_GDBSTUB_DEBUG
     {
       size_t p;
-      GDB_DEBUG("-> ");
+      GDB_DEBUG(state, "-> ");
       for (p = 0; p < state->pkt_len; p++)
         {
           if (isprint(state->pkt_buf[p]))
             {
-              GDB_DEBUG("%c", state->pkt_buf[p]);
+              GDB_DEBUG(state, "%c", state->pkt_buf[p]);
             }
           else
             {
-              GDB_DEBUG("\\x%02x", state->pkt_buf[p] & 0xff);
+              GDB_DEBUG(state, "\\x%02x", state->pkt_buf[p] & 0xff);
             }
         }
 
-      GDB_DEBUG("\n");
+      GDB_DEBUG(state, "\n");
     }
 #endif
 
@@ -453,7 +458,7 @@ static int gdb_recv_packet(FAR struct gdb_state_s *state)
             {
               if (state->pkt_len >= sizeof(state->pkt_buf))
                 {
-                  GDB_DEBUG("packet buffer overflow\n");
+                  GDB_DEBUG(state, "packet buffer overflow\n");
                   return -EOVERFLOW;
                 }
 
@@ -474,20 +479,20 @@ static int gdb_recv_packet(FAR struct gdb_state_s *state)
 #ifdef CONFIG_LIB_GDBSTUB_DEBUG
     {
       size_t p;
-      GDB_DEBUG("<- ");
+      GDB_DEBUG(state, "<- ");
       for (p = 0; p < state->pkt_len; p++)
         {
           if (isprint(state->pkt_buf[p]))
             {
-              GDB_DEBUG("%c", state->pkt_buf[p]);
+              GDB_DEBUG(state, "%c", state->pkt_buf[p]);
             }
           else
             {
-              GDB_DEBUG("\\x%02x", state->pkt_buf[p] & 0xff);
+              GDB_DEBUG(state, "\\x%02x", state->pkt_buf[p] & 0xff);
             }
         }
 
-      GDB_DEBUG("\n");
+      GDB_DEBUG(state, "\n");
     }
 #endif
 
@@ -499,7 +504,7 @@ static int gdb_recv_packet(FAR struct gdb_state_s *state)
 
   if (csum != gdb_checksum(state->pkt_buf, state->pkt_len)) /* Verify */
     {
-      GDB_DEBUG("received packet with bad checksum\n");
+      GDB_DEBUG(state, "received packet with bad checksum\n");
       gdb_putchar(state, '-'); /* Send packet nack */
       return -EIO;
     }
@@ -562,7 +567,7 @@ static int gdb_recv_ack(FAR struct gdb_state_s *state)
       case '-': /* Packet negative acknowledged */
         return 1;
       default: /* Bad response! */
-        GDB_DEBUG("received bad packet response: 0x%2x\n", response);
+        GDB_DEBUG(state, "received bad packet response: 0x%2x\n", response);
         return -EINVAL;
     }
 }
@@ -1943,6 +1948,10 @@ FAR struct gdb_state_s *gdb_state_init(gdb_send_func_t 
send,
   state->priv = priv;
   state->monitor = monitor;
 
+#ifdef CONFIG_LIB_GDBSTUB_DEBUG
+  lib_syslograwstream_open(&state->stream);
+#endif
+
   return state;
 }
 

Reply via email to