Strace 仅在进程结束时而非运行时以 ASCII 显示结果

Strace 仅在进程结束时而非运行时以 ASCII 显示结果

我正在寻找一种方法将系统调用strace的内容打印write(...)为 ASCII 而不是无用的字节!


我使用的命令Strace

sudo strace -e write=1  -e trace=write -s9999 -p 551 2>&1

输出由 3 个不同的部分组成:

1)胡言乱语

write(4, ",\307\3440#\360\277c\355)\246}\235H\320\301H\356Q[\0370\255T50\361\345VM\203\266\344\3320\352\210A3\262\276\356q< \244\215W\323\278\312\325\235\377\273\235sp\"\317?\264\204D\304D\334\16~\352\245Y\264\336\367\307\\\367W\214\217\30m\336q\367\300\366\257Z\213\vV\333\303$\320\3428\253\303\321\f]/\305\34\17w\233\243\311+\361\7\337\362\362P\30\357\317n\326\245f\25f\253m\352\224\"\330mqy\212\16\221V\20!\4\25\35\336\263`\202\312\200\353Bg\374\244l;\365\341|,M\6\35\2559s\306\315\4\226\247\216a\372\177\376\36l\16\271\vE\330\223\313j\t\317P(\177;\353\fA'\1>Ri\333/\322\306\n\310\0106\n\357\370\335sug\212W\22'\302\244\317\322\271e\356\272\\\212n\204\202\372\376\236\16\270`\254\234]\326ei\2520\27O\217\344\225\376\225\255\"\241\221\27\374f[/\r\325\343\35V\204\377y\240n4Gd\t\257\357\35u\251\23\213g\314>\25\35\276\275\251Fl\21\263\204\2257\211\354\201(\274\237`\373\17\247;\221\373._E\234\337\276\312\300(\374\227\323\323\364\357\203\32\231\265X\2\31\323\2-\334S\252\334\277\243\242'\343\273\231\n\1N\221<O\227\261%\357\366\272\264\273\261\251-a\10A\223Co\25\305\6\324\202\364/\7\360\353\313V~\347\26P\266\223\341!\302\275\24\336\337\216\17\267w\312\35U.\3t\377y\261U\v\362m?.\33\363\212K\25\342|\372\257\236\312Q\10\372\372\\\\\234oc\24P\221\325\321\205\217G\241\300\202\364D\3031d\266}\277k@\243\271\321\34\365Z\344\\\20\16\202\245>\31S\3214\7\366\340$\"\223#\201\261':\226\343\215\375\356\25\316,m\243\335\16\334\36\322x\210\365*\326\306L\225n_glJ\264\0163\237\274\270y&6\314\323V\325\264\206]\312!\240+\27\252\244\25\301\23P\341\35\261\301\363\3\320\2727\341s\333f\272\343\277\374g\207\341\320d(+\357\266N\244\231\vE\17\217\243:\322\217\250I\31\246.-ty\271X\320\4/S\217\364\362W\226_\234\257s\263yl\23\277\361?\210\217\242\274\311\366Q\351<\251\223B\332J\263\201\365\321zuK\217\352\257x@\2\322\211_\2663\21SMl\317\t\251\335r\367 q\236,\203\224\377\4G\24R\2635\1b\302\271\334\350\2333\213\201\300Y\200\31\340\2474\35\322\365_\4`\325b\17\233\24\236\257\265\304\36\263W\344\3+1\265\374\317qZ\2270\205\314\177\2021-
..., 4096) = 4096
write(4, "a\n\32\"\254\255\254\34\371\320\20s)\341\202\207<\327_\334\333\r\336\273\6\275\322.\343\r\251\313A^V\313\24\255A)\226R\28\217L\267\271\10\352@7\24\342J\32J#\203;\201\376\21\330\241\374y\24\34\343\203\270ZV\255;A\346\375(\314\36\236O\250\326\0\330d\271\34\315\234\311\330\217Q:C\225D\261\376o\244\223j]\2003\204l\36s\263\37\204UQ\301\364aOUc\330b\24k*q\35YhS\377\364\343\207P\217\\\330\314\301U\227\35F\24v,V\222\313}\350\261^\307\\\0054OyN\227\275\260&g\302(\312\24\331zf\n\300\312\\s+ZS\341~\245t\263'\226\254\200+8m\207\345\224E\3478\rR\327t\202\261\206\256\2457\324%u\210c\336\2\373\6\6\10\10w\211\206W\365\355c\313\373\273\334`\375@g\234;\357\227\4\264\240\232\310\270\235t\37\235\177\322*`0\354C\212X\354#\351\307|Y\237~\314\346}FI\321<n\36EH\354\277\235\227\5|\330\353\212\251\301\235\376\360\377\267\257ba\370\267\36W\300\212\237\351\241\206(E\241S\322m\32p\353\336\27\375\325\223\352x\0yR\317\233\\\31\314\217\17i\205\372\373\20\27\247\353\213\265\217,\262\6\26\333\tx\323\250\t\35L\366/\323K\331\332\\\36\211$1\377\300u\377\342d\214\320g\363\352FX\337U\233\341\260X\210\334\217\"\244\204\261@-2111\213Zg\6\273\376\30\7\t\220\272\355\363Jh\330Us\357~R\250L\375\346\374\35\257\355_5\344\327\346L2\313\251}\221\v\257;y^\316b\230r\312\226\361\223|\2248F\341\323\372\311\20\277\3105b\220\251\261p\241\0\340\2302\21\264\361\"\31\4\263\200
..., 4096) = 4096
...
...

这一切都是WTF?我有上千张,感觉太多了。
这是我在 99.9% 的运行时间中得到的唯一输出...... 我如何将这些字节转录为实际的 ascii 以了解写入的内容?

2)只有一条日志正确显示

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=568, si_uid=0, si_status=0, si_utime=7, si_stime=3} ---
write(1, ACTUAL_LOGS_OF_THE_APP ... , 5754) = 5754

这里我确实有一行是实际的日志。这仅出现在该过程结束时。
由于这一部分与前面的部分被“ SIGCHLD”分隔开,感觉这write()不是write应用程序随机生成的...为什么我会有 99.9% 的奇怪编码数据,而只有一行正确显示...?

3)以六边形表结束

 | 00000  5b 49 4c 44 4g 5a 3e 28  3e 3e 3f 3f 3f 52 72 60  [INFO]: some log |
 | 00010  71 71 61 6a 61 29 69 76  6a 62 72 62 6b 6b 22 68  I want to see an |
 | 00020  6E 6a 6a 63 63 76 2a 22  72 6b 62 6a 6a 79 73 62  d is redacted as |
 | 00030  71 71 26 62 6b 60 29 62  6a 6a 72 60 71 73 28 69  posting on so is |
...

我想这不是我的应用程序的确切输出,因为它不输出六进制,哈哈。所以它来自strace包含正是我想查看的日志!
虽然我不想在进程结束时看到它们,但在运行时看到它们!


我希望得到一些帮助来弄清楚我应该用(1)做什么,或者在运行时得到(3),而不仅仅是在最后......

谢谢 !

相关内容