Skip to content

Commit a296e63

Browse files
committed
[session] store breakpoints
1 parent b09bf8f commit a296e63

8 files changed

Lines changed: 46 additions & 0 deletions

src/logfile_sub_source.cc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
#include "scn/scan.h"
6464
#include "shlex.hh"
6565
#include "sql_util.hh"
66+
#include "sqlitepp.hh"
67+
#include "sqlitepp.client.hh"
6668
#include "tlx/container/btree_set.hpp"
6769
#include "vtab_module.hh"
6870
#include "yajlpp/yajlpp.hh"
@@ -3657,6 +3659,21 @@ logfile_sub_source::add_commands_for_session(
36573659
}
36583660
}
36593661
}
3662+
3663+
{
3664+
static auto& lnav_db = injector::get<auto_sqlite3&>();
3665+
static const auto BP_QUERY = R"(
3666+
SELECT description FROM lnav_log_breakpoints
3667+
)";
3668+
auto bp_stmt = prepare_stmt(lnav_db.in(), BP_QUERY);
3669+
if (bp_stmt.isOk()) {
3670+
auto stmt = bp_stmt.unwrap();
3671+
stmt.for_each_row<std::string>([&](const std::string& desc) {
3672+
receiver(fmt::format(FMT_STRING("breakpoint {}"), desc));
3673+
return false;
3674+
});
3675+
}
3676+
}
36603677
}
36613678

36623679
void

src/session_data.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2090,6 +2090,13 @@ reset_session()
20902090
}
20912091

20922092
// XXX clean this up
2093+
{
2094+
auto del_res = prepare_stmt(lnav_data.ld_db.in(),
2095+
"DELETE FROM lnav_log_breakpoints");
2096+
if (del_res.isOk()) {
2097+
del_res.unwrap().execute();
2098+
}
2099+
}
20932100
lnav_data.ld_log_source.lss_highlighters.clear();
20942101
lnav_data.ld_log_source.set_force_rebuild();
20952102
lnav_data.ld_log_source.set_marked_only(false);

test/expected/Makefile.am

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,8 +734,12 @@ dist_noinst_DATA = \
734734
test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.out \
735735
test_sessions.sh_68a89b56c5e7f7db620084cca1eb547cbb19a2c9.err \
736736
test_sessions.sh_68a89b56c5e7f7db620084cca1eb547cbb19a2c9.out \
737+
test_sessions.sh_6c6038294702aefea639f8669cd9a044bd744e18.err \
738+
test_sessions.sh_6c6038294702aefea639f8669cd9a044bd744e18.out \
737739
test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.err \
738740
test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.out \
741+
test_sessions.sh_72ccbbeb0bc5d74d4f2b3cd09da9ff15af591aa4.err \
742+
test_sessions.sh_72ccbbeb0bc5d74d4f2b3cd09da9ff15af591aa4.out \
739743
test_sessions.sh_7f4805745c6551e9f3ecbb809ffb4cfe8bce9c6f.err \
740744
test_sessions.sh_7f4805745c6551e9f3ecbb809ffb4cfe8bce9c6f.out \
741745
test_sessions.sh_858fd0081ed9c46dd81e2f81f1090756f2463558.err \

test/expected/test_sessions.sh_6c6038294702aefea639f8669cd9a044bd744e18.err

Whitespace-only changes.

test/expected/test_sessions.sh_6c6038294702aefea639f8669cd9a044bd744e18.out

Whitespace-only changes.

test/expected/test_sessions.sh_72ccbbeb0bc5d74d4f2b3cd09da9ff15af591aa4.err

Whitespace-only changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
description
2+
glog_log:logging_unittest.cc:259

test/test_sessions.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,22 @@ run_cap_test ${lnav_test} -nq \
227227
rm -rf ./sessions
228228
mkdir -p $HOME
229229

230+
# breakpoint saved in session
231+
run_cap_test ${lnav_test} -nq \
232+
-c ":breakpoint logging_unittest.cc:259" \
233+
-c ":save-session" \
234+
${test_dir}/logfile_glog.0
235+
236+
# breakpoint restored from session
237+
run_cap_test ${lnav_test} -n \
238+
-c ":load-session" \
239+
-c ";SELECT description FROM lnav_log_breakpoints" \
240+
-c ":write-csv-to -" \
241+
${test_dir}/logfile_glog.0
242+
243+
rm -rf ./sessions
244+
mkdir -p $HOME
245+
230246
# sticky header saved in session for text file
231247
run_cap_test ${lnav_test} -n \
232248
-c ':goto 1' \

0 commit comments

Comments
 (0)