citrun

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

commit 71e4dc74794e439850003caf9920ec5d7ff10294
parent 58232c00bf6c96ab64e33a05c1264f121f76a235
Author: Kyle Milz <kyle@0x30.net>
Date:   Sun, 25 Dec 2016 14:16:17 -0700

man: citrun- -> citrun_

Diffstat:
Mman/Jamfile | 10+++++-----
Dman/citrun-check.1 | 95-------------------------------------------------------------------------------
Dman/citrun-gl.1 | 43-------------------------------------------
Dman/citrun-inst.1 | 63---------------------------------------------------------------
Dman/citrun-term.1 | 50--------------------------------------------------
Dman/citrun-wrap.1 | 112-------------------------------------------------------------------------------
Aman/citrun_check.1 | 95+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aman/citrun_gl.1 | 43+++++++++++++++++++++++++++++++++++++++++++
Aman/citrun_inst.1 | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aman/citrun_term.1 | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Aman/citrun_wrap.1 | 112+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11 files changed, 368 insertions(+), 368 deletions(-)

diff --git a/man/Jamfile b/man/Jamfile @@ -1,8 +1,8 @@ SubDir TOP man ; InstallMan $(PREFIX)/man : - citrun-gl.1 - citrun-inst.1 - citrun-term.1 - citrun-wrap.1 - citrun-check.1 ; + citrun_gl.1 + citrun_inst.1 + citrun_term.1 + citrun_wrap.1 + citrun_check.1 ; diff --git a/man/citrun-check.1 b/man/citrun-check.1 @@ -1,95 +0,0 @@ -.\" -.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: August 3 2016 $ -.Dt CITRUN-CHECK 1 -.Os -.Sh NAME -.Nm citrun-check -.Nd check for rewrite activity -.Sh SYNOPSIS -.Nm -.Op Fl o Ar output -.Op Ar dir -.Sh DESCRIPTION -The -.Nm -utility recursively checks either -.Ar dir , -if given, or the current working directory for -activity logs created by -.Xr citrun-wrap 1 . -.Pp -If the -.Fl o -option is specified then -.Nm -will write to -.Ar output -instead of standard output. -.Pp -The text below shows the output of -.Nm -after -.Xr citrun-wrap 1 -had been used to instrument a simple project: -.Bd -literal -offset indent -Summary: - 1 Source files used as input - 1 Application link commands - 1 Rewrite successes - 1 Rewritten source compile successes - -Totals: - 6 Lines of source code - 53 Milliseconds spent rewriting source - 1 Function definitions - 1 Return statement values - 3 Total statements -.Ed -.Pp -The first section shows how thoroughly the project was instrumented, while -the second section contains rewriting totals. -.Sh SUMMARY COUNTS -.Pp -The most important summary events are failures. Source rewriting can fail for a -few reasons and is not always a bad thing. -.Pp -The following table lists all possible events and describes them: -.Pp -.Bl -tag -width Ds -.It Qq Source files used as input -The total number of C/C++ source files that had rewriting attempted on them. -.It Qq Application link commands -Number of link commands detected and modified to include the runtime. -.It Qq Rewrite successes -The number of times the rewriter successfully transformed the entire source -file. -.It Qq Rewrite failures -Rewriting a source file failed. There are two failure cases, either native -parsing the original source file also fails, or, only citrun-inst failed parsing -the source file. -.It Qq Rewritten source compile successes -The number of times the rewritten source file is processed successfully by the -native compiler. -.It Qq Rewritten source compile failures -Compiling the rewritten source file failed. There are two failure cases, either -compiling the original source file also fails or only compiling the -rewritten source fails. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr citrun-wrap 1 diff --git a/man/citrun-gl.1 b/man/citrun-gl.1 @@ -1,43 +0,0 @@ -.\" -.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: April 9 2016 $ -.Dt CITRUN-GL 1 -.Os -.Sh NAME -.Nm citrun-gl -.Nd OpenGL viewer -.Sh DESCRIPTION -Multiplexes execution data from any running instrumented programs into an -OpenGL window. -.Pp -Started instrumented programs will try connecting to -.Nm -when it is running. When that succeeds execution data will appear in the viewer -window. -.Pp -.Nm -uses process group information from connected programs to aggregate similar -processes together. -.Sh FILES -.Bl -tag -width Ds -.It Pa /tmp/citrun.socket -Listen socket. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr citrun-wrap 1 , -.Xr citrun-term 1 diff --git a/man/citrun-inst.1 b/man/citrun-inst.1 @@ -1,63 +0,0 @@ -.\" -.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: August 13 2016 $ -.Dt CITRUN-INST 1 -.Os -.Sh NAME -.Nm citrun-inst -.Nd rewrite source code -.Sh SYNOPSIS -.Nm -.Ar compile_cmd -.Sh DESCRIPTION -.Pp -Warning: -.Nm -is not usually called directly. Use -.Xr citrun-wrap 1 -instead. -.Pp -The -.Nm -utility performs source code rewriting. It visits statements in source files and -adds extra code to some of them. -.Pp -.Nm -should accept any -.Ar compile_cmd -that the compilers listed in -.Xr citrun-wrap 1 -would accept. -.Sh CALLING DIRECTLY -When -.Nm -is called directly it only performs its source code rewriting -step. That means it does not perform its usual call to compile the (possibly) -rewritten source file. -.Pp -Calling directly is useful for debugging rewrite failures and rewritten source -compile -failures. -.Pp -In this mode, successfully rewritten source files have -.Qq .citrun -appended to their file name and diagnostic information is printed to both -standard output and -.Pa citrun.log . -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr citrun-wrap 1 diff --git a/man/citrun-term.1 b/man/citrun-term.1 @@ -1,50 +0,0 @@ -.\" -.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: July 19 2016 $ -.Dt CITRUN-TERM 1 -.Os -.Sh NAME -.Nm citrun-term -.Nd terminal viewer -.Sh DESCRIPTION -Displays live execution data from running instrumented programs. Note only one -connection at a time is supported (for now). -.Pp -The -.Nm -control keys are -.Qq hjkl -and have the following effects: -.Pp -.Bl -tag -offset indent -compact -.It Qq j -Scrolls source down one line -.It Qq k -Scrolls source up one line -.It Qq h -Moves to previous translation unit, if possible -.It Qq l -Moves to next translation unit, if possible -.El -.Sh FILES -.Bl -tag -width Ds -.It Pa /tmp/citrun.socket -Listen socket. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr citrun-gl 1 diff --git a/man/citrun-wrap.1 b/man/citrun-wrap.1 @@ -1,112 +0,0 @@ -.\" -.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: April 10 2016 $ -.Dt CITRUN-WRAP 1 -.Os -.Sh NAME -.Nm citrun-wrap -.Nd enable rewriting on a build command -.Sh SYNOPSIS -.Nm -.Ar build_cmd -.Op Ar ... -.Sh DESCRIPTION -C It Run must rewrite source code to add instrumentation. This process happens -at compile time. -.Pp -The -.Nm -utility enables source code rewriting on any files compiled during -.Ar build_cmd . -.Pp -An important caveat is that -.Ar build_cmd -must search -.Ev PATH -when finding compiler executables, which must be named one of the following: -.Pp -.Bl -bullet -compact -.It -c++ -.It -cc -.It -clang -.It -clang++ -.It -eg++ -.It -egcc -.It -g++ -.It -gcc -.El -.Pp -The warnings and errors from the rewrite tool are indiscernible from the -warnings and errors generated by the native compiler, so all rewriting activity -is sent to a -.Pa citrun.log -file. -Human readable summaries can be generated by -.Xr citrun-check 1 . -.Pp -Incremental building is supported, but mixing object files created by different -versions of -.Nm -is not. -.Sh FILES -.Bl -tag -width Ds -.It Pa citrun.log -Rewrite activity log. -.El -.Sh EXIT STATUS -The -.Nm -utility exits with the build command exit code. -.Sh EXAMPLES -Let -.Qq program -be in a project that is: -.Pp -.Bl -bullet -compact -.It -written in C -.It -compiled with gcc -.It -built with make and make searches PATH for gcc -.El -.Pp -Prepending -.Nm -to the projects build command adds instrumentation: -.Pp -.Dl $ citrun-wrap make -.Pp -Now see -.Qq program -run: -.Pp -.Dl $ ./program -.Pp -If no viewer is running then -.Xr citrun-gl 1 -is started. -.Sh SEE ALSO -.Xr citrun-check 1 , -.Xr citrun-term 1 diff --git a/man/citrun_check.1 b/man/citrun_check.1 @@ -0,0 +1,95 @@ +.\" +.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: August 3 2016 $ +.Dt CITRUN-CHECK 1 +.Os +.Sh NAME +.Nm citrun_check +.Nd check for rewrite activity +.Sh SYNOPSIS +.Nm +.Op Fl o Ar output +.Op Ar dir +.Sh DESCRIPTION +The +.Nm +utility recursively checks either +.Ar dir , +if given, or the current working directory for +activity logs created by +.Xr citrun_wrap 1 . +.Pp +If the +.Fl o +option is specified then +.Nm +will write to +.Ar output +instead of standard output. +.Pp +The text below shows the output of +.Nm +after +.Xr citrun_wrap 1 +had been used to instrument a simple project: +.Bd -literal -offset indent +Summary: + 1 Source files used as input + 1 Application link commands + 1 Rewrite successes + 1 Rewritten source compile successes + +Totals: + 6 Lines of source code + 53 Milliseconds spent rewriting source + 1 Function definitions + 1 Return statement values + 3 Total statements +.Ed +.Pp +The first section shows how thoroughly the project was instrumented, while +the second section contains rewriting totals. +.Sh SUMMARY COUNTS +.Pp +The most important summary events are failures. Source rewriting can fail for a +few reasons and is not always a bad thing. +.Pp +The following table lists all possible events and describes them: +.Pp +.Bl -tag -width Ds +.It Qq Source files used as input +The total number of C/C++ source files that had rewriting attempted on them. +.It Qq Application link commands +Number of link commands detected and modified to include the runtime. +.It Qq Rewrite successes +The number of times the rewriter successfully transformed the entire source +file. +.It Qq Rewrite failures +Rewriting a source file failed. There are two failure cases, either native +parsing the original source file also fails, or, only citrun_inst failed parsing +the source file. +.It Qq Rewritten source compile successes +The number of times the rewritten source file is processed successfully by the +native compiler. +.It Qq Rewritten source compile failures +Compiling the rewritten source file failed. There are two failure cases, either +compiling the original source file also fails or only compiling the +rewritten source fails. +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr citrun_wrap 1 diff --git a/man/citrun_gl.1 b/man/citrun_gl.1 @@ -0,0 +1,43 @@ +.\" +.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: April 9 2016 $ +.Dt CITRUN-GL 1 +.Os +.Sh NAME +.Nm citrun_gl +.Nd OpenGL viewer +.Sh DESCRIPTION +Multiplexes execution data from any running instrumented programs into an +OpenGL window. +.Pp +Started instrumented programs will try connecting to +.Nm +when it is running. When that succeeds execution data will appear in the viewer +window. +.Pp +.Nm +uses process group information from connected programs to aggregate similar +processes together. +.Sh FILES +.Bl -tag -width Ds +.It Pa /tmp/citrun.socket +Listen socket. +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr citrun_wrap 1 , +.Xr citrun_term 1 diff --git a/man/citrun_inst.1 b/man/citrun_inst.1 @@ -0,0 +1,63 @@ +.\" +.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: August 13 2016 $ +.Dt CITRUN-INST 1 +.Os +.Sh NAME +.Nm citrun_inst +.Nd rewrite source code +.Sh SYNOPSIS +.Nm +.Ar compile_cmd +.Sh DESCRIPTION +.Pp +Warning: +.Nm +is not usually called directly. Use +.Xr citrun_wrap 1 +instead. +.Pp +The +.Nm +utility performs source code rewriting. It visits statements in source files and +adds extra code to some of them. +.Pp +.Nm +should accept any +.Ar compile_cmd +that the compilers listed in +.Xr citrun_wrap 1 +would accept. +.Sh CALLING DIRECTLY +When +.Nm +is called directly it only performs its source code rewriting +step. That means it does not perform its usual call to compile the (possibly) +rewritten source file. +.Pp +Calling directly is useful for debugging rewrite failures and rewritten source +compile +failures. +.Pp +In this mode, successfully rewritten source files have +.Qq .citrun +appended to their file name and diagnostic information is printed to both +standard output and +.Pa citrun.log . +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr citrun_wrap 1 diff --git a/man/citrun_term.1 b/man/citrun_term.1 @@ -0,0 +1,50 @@ +.\" +.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: July 19 2016 $ +.Dt CITRUN-TERM 1 +.Os +.Sh NAME +.Nm citrun_term +.Nd terminal viewer +.Sh DESCRIPTION +Displays live execution data from running instrumented programs. Note only one +connection at a time is supported (for now). +.Pp +The +.Nm +control keys are +.Qq hjkl +and have the following effects: +.Pp +.Bl -tag -offset indent -compact +.It Qq j +Scrolls source down one line +.It Qq k +Scrolls source up one line +.It Qq h +Moves to previous translation unit, if possible +.It Qq l +Moves to next translation unit, if possible +.El +.Sh FILES +.Bl -tag -width Ds +.It Pa /tmp/citrun.socket +Listen socket. +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr citrun_gl 1 diff --git a/man/citrun_wrap.1 b/man/citrun_wrap.1 @@ -0,0 +1,112 @@ +.\" +.\" Copyright (c) 2016 Kyle Milz <kyle@0x30.net> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: April 10 2016 $ +.Dt CITRUN-WRAP 1 +.Os +.Sh NAME +.Nm citrun_wrap +.Nd enable rewriting on a build command +.Sh SYNOPSIS +.Nm +.Ar build_cmd +.Op Ar ... +.Sh DESCRIPTION +C It Run must rewrite source code to add instrumentation. This process happens +at compile time. +.Pp +The +.Nm +utility enables source code rewriting on any files compiled during +.Ar build_cmd . +.Pp +An important caveat is that +.Ar build_cmd +must search +.Ev PATH +when finding compiler executables, which must be named one of the following: +.Pp +.Bl -bullet -compact +.It +c++ +.It +cc +.It +clang +.It +clang++ +.It +eg++ +.It +egcc +.It +g++ +.It +gcc +.El +.Pp +The warnings and errors from the rewrite tool are indiscernible from the +warnings and errors generated by the native compiler, so all rewriting activity +is sent to a +.Pa citrun.log +file. +Human readable summaries can be generated by +.Xr citrun_check 1 . +.Pp +Incremental building is supported, but mixing object files created by different +versions of +.Nm +is not. +.Sh FILES +.Bl -tag -width Ds +.It Pa citrun.log +Rewrite activity log. +.El +.Sh EXIT STATUS +The +.Nm +utility exits with the build command exit code. +.Sh EXAMPLES +Let +.Qq program +be in a project that is: +.Pp +.Bl -bullet -compact +.It +written in C +.It +compiled with gcc +.It +built with make and make searches PATH for gcc +.El +.Pp +Prepending +.Nm +to the projects build command adds instrumentation: +.Pp +.Dl $ citrun_wrap make +.Pp +Now see +.Qq program +run: +.Pp +.Dl $ ./program +.Pp +If no viewer is running then +.Xr citrun_gl 1 +is started. +.Sh SEE ALSO +.Xr citrun_check 1 , +.Xr citrun_term 1