@@ -300,6 +300,43 @@ Log level
300300To hide messages below a certain log level, you can use the
301301:ref: `:set-min-log-level<set_min_log_level> ` command.
302302
303+
304+ Log-oriented Debugging
305+ ----------------------
306+
307+ Breakpoints
308+ ^^^^^^^^^^^
309+
310+ Breakpoints let you mark log messages that originate from a particular
311+ source file location (e.g. :code: `main.cc:42 `) or that share a common
312+ message schema. Log messages that have a source location and match a
313+ breakpoint will be highlighted with a red circle, making it easy to spot
314+ related messages as you scroll through logs.
315+
316+ To toggle a breakpoint on the focused log message, press :kbd: `Ctrl ` +
317+ :kbd: `B ` or use the :ref: `:breakpoint<breakpoint> ` command.
318+ You can also set breakpoints explicitly with the
319+ :ref: `:breakpoint<breakpoint> ` command, specifying a
320+ :code: `[format:]file:line ` location.
321+
322+ Once breakpoints are set, you can jump between matching log messages
323+ using the :kbd: `F7 ` and :kbd: `F8 ` keys to move to the previous and next
324+ breakpoint hit, respectively.
325+
326+ Breakpoints can be disabled without deleting them using the
327+ :ref: `:toggle-breakpoint<toggle_breakpoint> ` command.
328+ The :ref: `lnav_log_breakpoints<table_lnav_log_breakpoints> `
329+ SQL table, which allows you to query, insert, update, and delete breakpoints.
330+ For example, to disable all breakpoints matching a file:
331+
332+ .. code-block :: custsqlite
333+
334+ ;UPDATE lnav_log_breakpoints SET enabled = 0 WHERE description LIKE '%main.cc%'
335+
336+ Breakpoints are saved as part of the session, so they will be restored
337+ the next time you open the same files.
338+
339+
303340.. _search_tables :
304341
305342Search Tables
0 commit comments