set loglevel from debugger

This commit is contained in:
folkert van heusden 2024-04-20 18:40:05 +02:00
parent df3665fc97
commit 3f5f1d91d1
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
3 changed files with 21 additions and 1 deletions

View file

@ -1049,6 +1049,18 @@ void debugger(console *const cnsl, bus *const b, std::atomic_uint32_t *const sto
continue;
}
else if (parts[0] == "setll" && parts.size() == 2) {
auto ll_parts = split(parts[1], ",");
if (ll_parts.size() != 2)
cnsl->put_string_lf("Loglevel for either screen or file missing");
else {
log_level_t ll_screen = parse_ll(ll_parts[0]);
log_level_t ll_file = parse_ll(ll_parts[1]);
setll(ll_screen, ll_file);
}
}
else if (cmd == "qi") {
show_queued_interrupts(cnsl, c);
@ -1087,6 +1099,7 @@ void debugger(console *const cnsl, bus *const b, std::atomic_uint32_t *const sto
" follows v/p (virtual/physical), all octal values, mmr0-3 and psw are",
" registers",
"trace/t - toggle tracing",
"setll - set loglevel: terminal,file",
"turbo - toggle turbo mode (cannot be interrupted)",
"debug - enable CPU debug mode",
"bt - show backtrace - need to enable debug first",

View file

@ -39,7 +39,7 @@ void setlog(const char *lf, const log_level_t ll_file, const log_level_t ll_scre
logfile = lf ? strdup(lf) : nullptr;
log_level_file = ll_file;
log_level_file = ll_file;
log_level_screen = ll_screen;
l_timestamp = timestamp;
@ -47,6 +47,12 @@ void setlog(const char *lf, const log_level_t ll_file, const log_level_t ll_scre
atexit(closelog);
}
void setll(const log_level_t ll_file, const log_level_t ll_screen)
{
log_level_file = ll_file;
log_level_screen = ll_screen;
}
void setloguid(const int uid, const int gid)
{
lf_uid = uid;

1
log.h
View file

@ -12,6 +12,7 @@ typedef enum { debug, info, warning, ll_error, none } log_level_t; // TODO ll_
log_level_t parse_ll(const std::string & str);
void setlog(const char *lf, const log_level_t ll_file, const log_level_t ll_screen, const bool l_timestamp);
void setll(const log_level_t ll_file, const log_level_t ll_screen);
void setloguid(const int uid, const int gid);
void closelog();
void dolog(const log_level_t ll, const char *fmt, ...);