Skip to content

Commit

Permalink
More debugging info
Browse files Browse the repository at this point in the history
  • Loading branch information
lazka committed Mar 2, 2023
1 parent 29014bd commit 235ea43
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions lib/libalpm/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,23 @@ int _alpm_unpack_single(alpm_handle_t *handle, const char *archive,
return ret;
}

char *get_command_line(const char* cmd, char *const argv[])
{
size_t len = strlen(cmd) + 1;
size_t nargs = 0;
while (argv[nargs] != NULL) {
len += strlen(argv[nargs++]) + 1;
}
char *result = malloc(len) + 1;
strcpy(result, cmd);
strcat(result, " ");
for (size_t arg = 0; arg < nargs; ++arg) {
strcat(result, argv[arg]);
strcat(result, " ");
}
return result;
}

/** Unpack a list of files in an archive.
* @param handle the context handle
* @param path the archive to unpack
Expand Down Expand Up @@ -663,7 +680,7 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *cmd, char *const argv[],
_alpm_reset_signals();
execv(cmd, argv);
/* execv only returns if there was an error */
fprintf(stderr, _("call to execv failed (%s)\n"), strerror(errno));
fprintf(stderr, _("call to execv (%s) failed (%s)\n"), get_command_line(cmd, argv), strerror(errno));
exit(1);
} else {
/* this code runs for the parent only (wait on the child) */
Expand Down Expand Up @@ -752,7 +769,7 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *cmd, char *const argv[],
if(WIFEXITED(status)) {
_alpm_log(handle, ALPM_LOG_DEBUG, "call to waitpid succeeded\n");
if(WEXITSTATUS(status) != 0) {
_alpm_log(handle, ALPM_LOG_ERROR, _("command failed to execute correctly\n"));
_alpm_log(handle, ALPM_LOG_ERROR, _("command (%s) failed to execute correctly\n"), get_command_line(cmd, argv));
retval = 1;
}
} else if(WIFSIGNALED(status) != 0) {
Expand Down

0 comments on commit 235ea43

Please sign in to comment.