Show complete arguments in strace even in curly brackets

前端 未结 4 1481
说谎
说谎 2021-02-02 10:18

I know the -s option should display longer arguments, but it doesn\'t work always (probably because of those curly brackets meaning array or nested arguments?).

相关标签:
4条回答
  • 2021-02-02 10:54

    According to the manual and the source, the -v option should help you with large structures.

    0 讨论(0)
  • 2021-02-02 10:57

    To verbosely describe what Vladimir Kunschikov said - run the following commands:

    1. git clone git://git.code.sf.net/p/strace/code strace-code
    2. cd strace-code
    3. Modify the part of defs.h file as described by Vladimir Kunschikov.
    4. ./bootstrap
    5. ./configure
    6. make
    7. make install

    The modified version of strace should have been installed in /usr/local/bin/strace. Now, run the strace using a large value for the -s option. Example:

    strace -s 65536 command_to_run_goes_here
    

    Sources:

    1. Vladimir Kunschikov's answer.
    2. https://github.com/strace/strace/issues/2
    0 讨论(0)
  • 2021-02-02 11:03

    Here it is not length problem.

    ./term.c:                       tprintf(" %sopost %sisig %sicanon %secho ...}",
    

    You can add here more flags if you want. The flags are defined in /usr/include/asm-generic/termbits.h

    0 讨论(0)
  • 2021-02-02 11:07

    There is such option in the strace parameters - you should use -v command line switch. Furthermore, due to the opensource nature of this great utility, you can disable abbreviation totally by patching the defs.h header in the strace sources:

    < #define abbrev(tcp)   ((tcp)->qual_flg & QUAL_ABBREV)
    ---
    > #define abbrev(tcp)   0
    

    I've patched that way strace-4.9 from my local gentoo /usr/portage/distfiles/ software sources storage. It doesn't require to download latest strace sources from sourceforge.

    0 讨论(0)
提交回复
热议问题