mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-24 10:24:53 +01:00
CLI: add talloc leak report, controlled by an environment variable.
The argument handling in notmuch.c seems due for an overhaul, but until then use an environment variable to specify a location to write the talloc leak report to. This is only enabled for the (interesting) case where some notmuch subcommand is invoked.
This commit is contained in:
parent
5a1b22e2bc
commit
3380498042
1 changed files with 22 additions and 2 deletions
24
notmuch.c
24
notmuch.c
|
@ -322,8 +322,28 @@ main (int argc, char *argv[])
|
|||
for (i = 0; i < ARRAY_SIZE (commands); i++) {
|
||||
command = &commands[i];
|
||||
|
||||
if (strcmp (argv[1], command->name) == 0)
|
||||
return (command->function) (local, argc - 1, &argv[1]);
|
||||
if (strcmp (argv[1], command->name) == 0) {
|
||||
int ret;
|
||||
char *talloc_report;
|
||||
|
||||
ret = (command->function)(local, argc - 1, &argv[1]);
|
||||
|
||||
/* in the future support for this environment variable may
|
||||
* be supplemented or replaced by command line arguments
|
||||
* --leak-report and/or --leak-report-full */
|
||||
|
||||
talloc_report = getenv ("NOTMUCH_TALLOC_REPORT");
|
||||
|
||||
/* this relies on the previous call to
|
||||
* talloc_enable_null_tracking */
|
||||
|
||||
if (talloc_report && strcmp (talloc_report, "") != 0) {
|
||||
FILE *report = fopen (talloc_report, "w");
|
||||
talloc_report_full (NULL, report);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf (stderr, "Error: Unknown command '%s' (see \"notmuch help\")\n",
|
||||
|
|
Loading…
Reference in a new issue