diff --git a/src/apps/debugger/user_interface/cli/CliDebugReportCommand.cpp b/src/apps/debugger/user_interface/cli/CliDebugReportCommand.cpp index 213b5f774d..62155a8402 100644 --- a/src/apps/debugger/user_interface/cli/CliDebugReportCommand.cpp +++ b/src/apps/debugger/user_interface/cli/CliDebugReportCommand.cpp @@ -28,12 +28,23 @@ CliDebugReportCommand::CliDebugReportCommand() void CliDebugReportCommand::Execute(int argc, const char* const* argv, CliContext& context) { - char buffer[B_FILE_NAME_LENGTH]; - UiUtils::ReportNameForTeam(context.GetTeam(), buffer, sizeof(buffer)); BPath path; - find_directory(B_DESKTOP_DIRECTORY, &path); - path.Append(buffer); + if (argc > 1) { + path.SetTo(argv[1]); + if (path.InitCheck() != B_OK) { + printf("Invalid report path %s given.\n", argv[1]); + return; + } + } else { + char buffer[B_FILE_NAME_LENGTH]; + UiUtils::ReportNameForTeam(context.GetTeam(), buffer, sizeof(buffer)); + find_directory(B_DESKTOP_DIRECTORY, &path); + path.Append(buffer); + } + entry_ref ref; - if (get_ref_for_path(path.Path(), &ref) == B_OK) + if (get_ref_for_path(path.Path(), &ref) == B_OK) { + printf("Saving debug information report to %s...\n", path.Path()); context.GetUserInterfaceListener()->DebugReportRequested(&ref); + } }