Re: Tracing feature in the client side

Maksim Ivanov <[email protected]>
Newsgroups gmane.comp.lib.muscle
Message-ID <CAH=wB8xm9n61=HYc-39eLjbYCfZ+dpSBW=yyOPn60Jy6wE4jkA@mail.gmail.com>
Hello Ludovic,

>>
>> Second, there is an inconsistency between the printf format specifier
>> and the passed value in the trace function, that produces a warning.
>> E.g. with clang 3.7.0:
>>
>> > pcsc-lite/src-1.8.15/src/winscard_clnt.c:162:14: error: format specifies type 'unsigned long' but the argument has type 'pthread_t'
>> >       (aka 'struct __nc_basic_thread_data *') [-Werror,-Wformat]
>> >                 direction, pthread_self(), func);
>> >                            ^~~~~~~~~~~~~~
>
>
> Can you propose a patch for that?
>
> pthread_t may not be a numerical value. It may be a structure.
> http://stackoverflow.com/questions/1759794/how-to-print-pthread-t

I could propose a patch, but in that case we would have to bother with
licensing (at least, Google Inc. will have to be included into the
copyright authors list).

Anyway, I don't have a very nice solution for this problem too.
Simple, but theoretically non-portable, way would be to cast pthread_t
to 64-bit integer type (for example, that's how it's done in Chromium
- as the last-resort solution on the platforms without more useful
mechanisms: <https://cs.chromium.org/#chromium/src/base/threading/platform_thread_posix.cc&l=128>
).
Portable, but tedious, way would be to write a function that dumps the
passed data byte-by-byte.

IMO, the simplest solution with casting may be enough, as this anyway
applies to the code that is disabled by default.


Regards,
Maksim


On Fri, Mar 11, 2016 at 10:59 AM, Ludovic Rousseau
<[email protected]> wrote:
>
> 2016-03-10 13:13 GMT+01:00 Maksim Ivanov <[email protected]>:
>>
>> Hello all,
>
>
> Hello Maksim,
>
>>
>>
>> I have a couple of small suggestions regarding the tracing feature of
>> the PC/SC-Lite's client side library. This feature is controlled by
>> the "DO_TRACE" preprocessor definition.
>>
>> First, it's impossible to trigger this feature using the compiler
>> flags: for some reason, the winscard_clnt.c file contains directive
>> "#undef DO_TRACE". If it were a commented "#define" directive, then
>> this would be more useful: the feature could be triggered both by
>> editing the source file and by modifying the compiler flags.
>
>
> Fixed in ea0a50bf2088906d888cf1888b4439f3391eb111
>
>>
>> Second, there is an inconsistency between the printf format specifier
>> and the passed value in the trace function, that produces a warning.
>> E.g. with clang 3.7.0:
>>
>> > pcsc-lite/src-1.8.15/src/winscard_clnt.c:162:14: error: format specifies type 'unsigned long' but the argument has type 'pthread_t'
>> >       (aka 'struct __nc_basic_thread_data *') [-Werror,-Wformat]
>> >                 direction, pthread_self(), func);
>> >                            ^~~~~~~~~~~~~~
>
>
> Can you propose a patch for that?
>
> pthread_t may not be a numerical value. It may be a structure.
> http://stackoverflow.com/questions/1759794/how-to-print-pthread-t
>
> Regards,
>
> --
>  Dr. Ludovic Rousseau
>
> _______________________________________________
> Pcsclite-muscle mailing list
> [email protected]
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle



Maksim Ivanov

Software Engineer

[email protected]
+49 (0)176 65889070

Google Germany GmbH

Dienerstraße 12

80331 München


Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle

Registergericht und -nummer: Hamburg, HRB 86891

Sitz der Gesellschaft: Hamburg


Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat
sind, leiten Sie diese bitte nicht weiter, informieren Sie den
Absender und löschen Sie die E-Mail und alle Anhänge. Vielen Dank.



This e-mail is confidential. If you are not the right addressee please
do not forward it, please inform the sender, and please erase this
e-mail including any attachments. Thanks.

_______________________________________________
Pcsclite-muscle mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.