mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-23 19:38:07 +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++) {
|
for (i = 0; i < ARRAY_SIZE (commands); i++) {
|
||||||
command = &commands[i];
|
command = &commands[i];
|
||||||
|
|
||||||
if (strcmp (argv[1], command->name) == 0)
|
if (strcmp (argv[1], command->name) == 0) {
|
||||||
return (command->function) (local, argc - 1, &argv[1]);
|
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",
|
fprintf (stderr, "Error: Unknown command '%s' (see \"notmuch help\")\n",
|
||||||
|
|
Loading…
Reference in a new issue