citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

commit 258d2dbefba4525032b677ce9d3e706401fa0fcc
parent 8fbfac9193560fbc819d8f14a18c8058208d42c3
Author: Kyle Milz <kyle@0x30.net>
Date:   Tue,  2 Aug 2016 21:40:13 -0600

src: handle when argv[0] is not a bare name

Diffstat:
Msrc/inst_main.cc | 10++++++++++
1 file changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/inst_main.cc b/src/inst_main.cc @@ -26,6 +26,7 @@ #include <cstring> // strcmp #include <err.h> #include <fstream> // ifstream, ofstream +#include <libgen.h> // basename #include <sstream> #include <string> #include <unistd.h> // execvp, fork, getpid, unlink @@ -80,6 +81,15 @@ CitrunInst::CitrunInst(int argc, char *argv[]) : << "-" << utsname.release << " " << utsname.machine << ") called as '" << m_args[0] << "'.\n"; + char *base_name; + if ((base_name = basename(argv[0])) == NULL) + err(1, "basename"); + + if (std::strcmp(base_name, argv[0]) != 0) { + m_log << m_pfx << "Changing '" << argv[0] << "' to '" << base_name << "'.\n"; + m_args[0] = base_name; + } + setprogname("citrun-inst"); }