From 9ef2742a514f66f728015a8ff9123b5f64b7d887 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 22 Mar 2023 11:37:54 +0100 Subject: [PATCH] MINOR: debug: support dumping the libs addresses when running in verbose mode Starting haproxy with -dL helps enumerate the list of libraries in use. But sometimes in order to go further we'd like to see their address ranges. This is already supported on the CLI's "show libs" but not on the command line where it can sometimes help troubleshoot startup issues. Let's dump them when in verbose mode. This way it doesn't change the existing behavior for those trying to enumerate libs to produce an archive. --- doc/management.txt | 3 +++ src/haproxy.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/management.txt b/doc/management.txt index 96bd30c3d..36b196ff9 100644 --- a/doc/management.txt +++ b/doc/management.txt @@ -271,6 +271,9 @@ list of options is : ./haproxy -W -q -c -dL -f foo.cfg | tar -T - -hzcf archive.tgz + When started in verbose mode (-V) the shared libraries' address ranges are + also enumerated, unless the quiet mode is in use (-q). + -dM[[,]][help|options,...] : forces memory poisoning, and/or changes memory other debugging options. Memory poisonning means that each and every memory region allocated with malloc() or pool_alloc() will be filled with diff --git a/src/haproxy.c b/src/haproxy.c index 3def1ed98..852e51402 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -2310,7 +2310,7 @@ static void init(int argc, char **argv) if (global.mode & MODE_DUMP_LIBS) { qfprintf(stdout, "List of loaded object files:\n"); chunk_reset(&trash); - if (dump_libs(&trash, 0)) + if (dump_libs(&trash, ((arg_mode & (MODE_QUIET|MODE_VERBOSE)) == MODE_VERBOSE))) printf("%s", trash.area); } #endif