dynamic_emit_prefix() currently separates modname, funcname, lineno
with ':'.  This is confounds use of cut -d: <logfile>, since the field
positions can change per callsite with dynamic-debug.  So change
inter-field separator to '.' and keep the ':' prefix terminator.

This improves the situation, but doesnt solve it entirely; if
dyndbg==p is used instead of dyndbg==p[fmlt]+, the callsite is enabled
but no prefix is added, so theres one less ':' in the message.
Changing the terminator to ',' would fix this, and might be warranted,
especially since pr_fmt() typically adds a ':' as well.

Joe Perches wasnt a fan of this, but his complaint was essentially
that cut -d: was a poor way to do this kind of thing.  I concede that
point, but note that the kernel is not in the habit of needlessly
confounding users work, at least when accommodating them is so trivial.

cc: Joe Perches <j...@perches.com>
Signed-off-by: Jim Cromie <jim.cro...@gmail.com>
---
 lib/dynamic_debug.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index 11a8897..f1f7467 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -556,16 +556,18 @@ static char *dynamic_emit_prefix(const struct _ddebug 
*desc, char *buf)
        }
        pos_after_tid = pos;
        if (desc->flags & _DPRINTK_FLAGS_INCL_MODNAME)
-               pos += snprintf(buf + pos, remaining(pos), "%s:",
+               pos += snprintf(buf + pos, remaining(pos), "%s.",
                                desc->modname);
        if (desc->flags & _DPRINTK_FLAGS_INCL_FUNCNAME)
-               pos += snprintf(buf + pos, remaining(pos), "%s:",
+               pos += snprintf(buf + pos, remaining(pos), "%s.",
                                desc->function);
        if (desc->flags & _DPRINTK_FLAGS_INCL_LINENO)
-               pos += snprintf(buf + pos, remaining(pos), "%d:",
+               pos += snprintf(buf + pos, remaining(pos), "%d.",
                                desc->lineno);
-       if (pos - pos_after_tid)
-               pos += snprintf(buf + pos, remaining(pos), " ");
+       if (pos - pos_after_tid) {
+               pos--;
+               pos += snprintf(buf + pos, remaining(pos), ": ");
+       }
        if (pos >= PREFIX_SIZE)
                buf[PREFIX_SIZE - 1] = '\0';
 
-- 
1.7.11.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to