[lttng-dev] Bug in lttng-ust tool lttng-gen-tp which replaces all ".c" with ".h" in the path
Jonathan Rajotte-Julien
jonathan.rajotte-julien at efficios.com
Mon Sep 18 16:27:47 UTC 2017
Hi,
On Mon, Sep 18, 2017 at 11:47:28AM +0200, Gunnar Strand wrote:
> Hi,
>
> It does not seem like anonymous bug reporting is supported, so I am
> submitting the report here instead.
>
> I found the following bug in the tools/lttng-gen-tp tool in the lttng-ust
> component, which is present in the latest commit on master,
> d0f6cf574ef992620b09c183cb3a0ea771070ea5:
>
> 66 class CFile:
> ...
> 79 def write(self):
> 80 outputFile = open(self.outputFilename,"w")
> 81
> 82 headerFilename = self.outputFilename.replace(".c",".h")
>
I agree with you here. Still, based on basic testing on my side passing a path as
a template/-o arguments (e.g absolute path) yield more problems [1] than only this replacement.
There is also another occurrence of a buggy replacement on line 129:
def write(self):
cFilename = self.outputFilename.replace(".o",".c")
cc = self._detectCC()
if cc == "":
Could you give me the exact command you are using?
[1] The header template use a relative path for inclusion passing an absolute
path for any parameters will end up in a compilation error for most use-case.
Cheers
> Line 82 replaces all occurrences of ".c" with ".h" which breaks compilation
> if the path to the source contains ".c" anywhere, eg.:
> /path/to/my.cigar/source/...
>
> Only the last occurrence should be replaced, eg.:
>
> if self.outputFilename.endswith(".c"):
>
> headerFilename = self.outputFilename[:-2] + ".h"
>
> Or just the second line if the code can assume that the string has a ".c"
> suffix.
>
> BR
>
> Gunnar
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Jonathan Rajotte-Julien
EfficiOS
More information about the lttng-dev
mailing list