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.
This commit is contained in:
Willy Tarreau 2023-03-22 11:37:54 +01:00
parent 1b536a11e7
commit 9ef2742a51
2 changed files with 4 additions and 1 deletions

View File

@ -271,6 +271,9 @@ list of options is :
./haproxy -W -q -c -dL -f foo.cfg | tar -T - -hzcf archive.tgz ./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[<byte>[,]][help|options,...] : forces memory poisoning, and/or changes -dM[<byte>[,]][help|options,...] : forces memory poisoning, and/or changes
memory other debugging options. Memory poisonning means that each and every memory other debugging options. Memory poisonning means that each and every
memory region allocated with malloc() or pool_alloc() will be filled with memory region allocated with malloc() or pool_alloc() will be filled with

View File

@ -2310,7 +2310,7 @@ static void init(int argc, char **argv)
if (global.mode & MODE_DUMP_LIBS) { if (global.mode & MODE_DUMP_LIBS) {
qfprintf(stdout, "List of loaded object files:\n"); qfprintf(stdout, "List of loaded object files:\n");
chunk_reset(&trash); chunk_reset(&trash);
if (dump_libs(&trash, 0)) if (dump_libs(&trash, ((arg_mode & (MODE_QUIET|MODE_VERBOSE)) == MODE_VERBOSE)))
printf("%s", trash.area); printf("%s", trash.area);
} }
#endif #endif