various: log memory events
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I6a6a69643b6d00277bb9bcfeb4cd01dc78d7cd3d
This commit is contained in:
parent
0bc2decb7c
commit
bc77b887ad
7 changed files with 280 additions and 47 deletions
30
src/main.c
30
src/main.c
|
@ -1,4 +1,3 @@
|
|||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
|
@ -9,7 +8,7 @@
|
|||
|
||||
#include "../include/chroma.h"
|
||||
|
||||
/* Global state for signal handling */
|
||||
// Global state for signal handling
|
||||
volatile sig_atomic_t chroma_should_quit = 0;
|
||||
|
||||
static void print_usage(const char *program_name) {
|
||||
|
@ -18,7 +17,9 @@ static void print_usage(const char *program_name) {
|
|||
printf("Options:\n");
|
||||
printf(" -c, --config FILE Configuration file path\n");
|
||||
printf(" -d, --daemon Run as daemon\n");
|
||||
printf(" -v, --verbose Verbose logging\n");
|
||||
printf(" -v, --verbose Increase verbosity (can be used multiple "
|
||||
"times)\n");
|
||||
printf(" -v: INFO, -vv: DEBUG, -vvv: TRACE\n");
|
||||
printf(" -h, --help Show this help\n");
|
||||
printf(" --version Show version information\n");
|
||||
printf("\nExamples:\n");
|
||||
|
@ -124,7 +125,7 @@ int main(int argc, char *argv[]) {
|
|||
chroma_state_t state;
|
||||
char *config_file = NULL;
|
||||
bool daemon_mode = false;
|
||||
bool verbose = false;
|
||||
int verbose_level = 0;
|
||||
int opt;
|
||||
int ret = 0;
|
||||
|
||||
|
@ -143,7 +144,7 @@ int main(int argc, char *argv[]) {
|
|||
daemon_mode = true;
|
||||
break;
|
||||
case 'v':
|
||||
verbose = true;
|
||||
verbose_level++;
|
||||
break;
|
||||
case 'h':
|
||||
print_usage(argv[0]);
|
||||
|
@ -161,10 +162,9 @@ int main(int argc, char *argv[]) {
|
|||
memset(&state, 0, sizeof(state));
|
||||
state.config.daemon_mode = daemon_mode;
|
||||
|
||||
// Set log level based on verbose flag
|
||||
if (verbose) {
|
||||
chroma_set_log_level(1); // Enable debug logging
|
||||
}
|
||||
// Set log level based on verbosity count
|
||||
// 0: ERROR+WARN only, 1: +INFO, 2: +DEBUG, 3+: +TRACE
|
||||
chroma_set_log_level(verbose_level);
|
||||
|
||||
// Set up signal handlers
|
||||
if (setup_signals() != 0) {
|
||||
|
@ -189,6 +189,8 @@ int main(int argc, char *argv[]) {
|
|||
// Initialize chroma
|
||||
chroma_log("INFO", "Initializing chroma wallpaper daemon v%s",
|
||||
CHROMA_VERSION);
|
||||
chroma_log_memory_stats("startup");
|
||||
|
||||
ret = chroma_init(&state);
|
||||
if (ret != CHROMA_OK) {
|
||||
chroma_log("ERROR", "Failed to initialize chroma: %s",
|
||||
|
@ -196,6 +198,7 @@ int main(int argc, char *argv[]) {
|
|||
chroma_cleanup(&state);
|
||||
return 1;
|
||||
}
|
||||
chroma_log_memory_stats("post-init");
|
||||
|
||||
// Load configuration
|
||||
chroma_log("INFO", "Loading configuration from: %s", config_file);
|
||||
|
@ -203,6 +206,7 @@ int main(int argc, char *argv[]) {
|
|||
chroma_log("WARN", "Failed to load config file, using defaults");
|
||||
// Continue with default configuration
|
||||
}
|
||||
chroma_log_memory_stats("post-config-load");
|
||||
|
||||
// Connect to Wayland
|
||||
ret = chroma_wayland_connect(&state);
|
||||
|
@ -212,6 +216,7 @@ int main(int argc, char *argv[]) {
|
|||
chroma_cleanup(&state);
|
||||
return 1;
|
||||
}
|
||||
chroma_log_memory_stats("post-wayland-connect");
|
||||
|
||||
// Initialize EGL
|
||||
ret = chroma_egl_init(&state);
|
||||
|
@ -221,18 +226,23 @@ int main(int argc, char *argv[]) {
|
|||
chroma_cleanup(&state);
|
||||
return 1;
|
||||
}
|
||||
chroma_log_memory_stats("post-egl-init");
|
||||
|
||||
chroma_log("INFO", "Chroma daemon initialized successfully");
|
||||
chroma_log_memory_stats("pre-main-loop");
|
||||
|
||||
// Main event loop
|
||||
ret = chroma_run(&state);
|
||||
if (ret != CHROMA_OK) {
|
||||
chroma_log("ERROR", "Main loop failed: %s", chroma_error_string(ret));
|
||||
}
|
||||
chroma_log_memory_stats("post-main-loop");
|
||||
|
||||
// Cleanup
|
||||
chroma_log("INFO", "Shutting down chroma daemon");
|
||||
chroma_log_memory_stats("pre-cleanup");
|
||||
chroma_cleanup(&state);
|
||||
chroma_log_memory_stats("post-cleanup");
|
||||
|
||||
return (ret == CHROMA_OK) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue