Accept a ddebug record with a null site pointer, and write abbreviated
output for that record that doesn't include site info (but does
include line-number, since that can be used in >control queries).
Also add a 2nd header line with a template for the new output.

Signed-off-by: Jim Cromie <jim.cro...@gmail.com>
---
 lib/dynamic_debug.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index 0c535f3c2ba9..1f0cac4a66af 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -918,18 +918,27 @@ static int ddebug_proc_show(struct seq_file *m, void *p)
 
        if (p == SEQ_START_TOKEN) {
                seq_puts(m,
-                        "# filename:lineno [module]function flags format\n");
+                        "#: filename:lineno [module]function flags format\n"
+                        "#| [module]:lineno flags format\n"
+                       );
                return 0;
        }
 
        dc = dp->site;
-
-       seq_printf(m, "%s:%u [%s]%s =%s \"",
-                  trim_prefix(dc->filename), dp->lineno,
-                  iter->table->mod_name, dc->function,
-                  ddebug_describe_flags(dp->flags, &flags));
-       seq_escape(m, dp->format, "\t\r\n\"");
-       seq_puts(m, "\"\n");
+       if (dc) {
+               seq_printf(m, "%s:%u [%s]%s =%s \"",
+                          trim_prefix(dc->filename), dp->lineno,
+                          iter->table->mod_name, dc->function,
+                          ddebug_describe_flags(dp->flags, &flags));
+               seq_escape(m, dp->format, "\t\r\n\"");
+               seq_puts(m, "\"\n");
+       } else {
+               seq_printf(m, "[%s]:%u =%s \"",
+                          iter->table->mod_name, dp->lineno,
+                          ddebug_describe_flags(dp->flags, &flags));
+               seq_escape(m, dp->format, "\t\r\n\"");
+               seq_puts(m, "\"\n");
+       }
 
        return 0;
 }
-- 
2.29.2

Reply via email to