Provided by: libpcsclite-dev_1.8.23-3_amd64 bug


       pcsc-spy - A PC/SC spy command


       pcsc-spy [-n|--nocolor] [-d|--diffable] [-h|--help] [fifo_filename]


       pcsc-spy displays PC/SC calls of an application. It must be used with the

       To be able to spy the PC/SC layer, the application flow must be modified so that all PC/SC
       calls are redirected. Two options are available:

       - the application is linked with
       - the application loads the library using dlopen(3)


       -d, --diffable
           Remove the variable parts (like handler values) from the output so that two execution
           can be more easily compared.

       -h, --help
           Display a short help text.

       -n, --nocolor
           Disable the output colorization (if you want redirect the output in a file for

       -v, --version
           Print the version of the pcsc-spy program plus a copyright, a list of authors.


   Applications linked with
       We will use the standard "LD_PRELOAD" loader option to load our spying library.


        LD_PRELOAD=/usr/lib/ pcsc_scan

   Application loading
       This is the case for the PC/SC wrappers like pyscard (for Python) and pcsc-perl (for
       Perl). The LD_PRELOAD mechanism can't be used. Instead we replace the
       library by the spying one.

       You may use and to install and uninstall the spying

       Using the spying library without pcsc-spy is not a problem but has side effects:

       - a line " cannot open shared object file: No such file or
       directory" will be displayed

       - some CPU time will be lost because of the PC/SC calls redirection

   Starting the spy tool

       If a command argument is passed we use it instead of the default ~/pcsc-spy FIFO file. It
       is then possible to record an execution log and use pcsc-spy multiple times on the same

       To create the log file just do:

        mkfifo ~/pcsc-spy
        cat ~/pcsc-spy > logfile

       and run your PC/SC application.

   Mac OS X
       The installation is not automatic. In the pcsc-lite/src/spy directory do:

        make framework

       Then copy the PCSC.framework directory in /tmp

        cp -a PCSC.framework /tmp

       Copy the official PCSC.framework (binary only) in /tmp

        cp /System/Library/Frameworks/PCSC.framework/PCSC /tmp

       Run the application to debug as:

        DYLD_FRAMEWORK_PATH=/tmp pcsctest


       ~/pcsc-spy FIFO file is used by to send the raw log lines




       This manual page was written by Ludovic Rousseau <>