[lttng-dev] Bug in lttng-ust tool lttng-gen-tp which replaces all ".c" with ".h" in the path
Gunnar Strand
Gunnar.Strand at ericsson.com
Tue Sep 19 03:35:08 UTC 2017
Hi,
On 09/18/17 18:27, Jonathan Rajotte-Julien wrote:
> 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.
Yes, an absolute path is passed to the command, and in this case and
that is how the issue got exposed for us. We have a workaround in place,
but using relative paths would be the better solution, thanks.
BR
Gunnar
>
> 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
More information about the lttng-dev
mailing list