我有一个由与terminal通信的第三方开发的linux进程。 为了deBUGging,我希望看到沟通回来。@H_419_1@
有人可能会认为cat会伎俩(看一个方向):@H_419_1@
./third-party-app & cat /dev/tty@H_419_1@
…但它不。 相反, cat会窃取一半数据用于应用程序,这是非常不值钱的。@H_419_1@
第三方应用程序被硬编码为/dev/tty 。@H_419_1@
Qt应用程序因为内存不足(OOM)@H_419_1@
将“V”写入看门狗设备文件的含义@H_419_1@
从压缩的内核映像获取内核版本@H_419_1@
如何正确使用_syscall3@H_419_1@
使用linux的I2C驱动程序@H_419_1@
我发现窥探通信的一种方法是将/dev/tty设备重命名为/dev/tty /dev/real_tty并在其位置创build一个名为/dev/tty的命名pipe道。 然后运行:@H_419_1@
cat /dev/real_tty | tee /dev/tty &@H_419_1@
…至less让我看到/dev/real_tty的输出,通过将数据从/dev/real_tty到命名pipe道/dev/tty和stdout 。@H_419_1@
这种作品,但它感觉真的很狡猾,并依靠取代设备的诡计。 它也不能在两个方向上工作,因为命名pipe道只能向一个方向传送数据。@H_419_1@
什么是正确的方法来做到这一点?@H_419_1@
如果有人想知道,TTY设备是一个到微控制器的RS-232连接。 信息不敏感或不安全。 所有进程(应用程序和间谍)都可以以root身份运行。@H_419_1@
你如何检查你的内核是否支持硬件上的GPIO?@H_419_1@
部署设备树叠加时出错@H_419_1@
如何检测linux板上GPIO引脚的变化@H_419_1@
在embedded式linux中是否可以同时导出多个GPIO?@H_419_1@
什么是最简单的x86embedded式linux?@H_419_1@
你可以看看slsnif 。 它完全是你想要的,或者如果你有兴趣自己写一个源可以看到它是如何工作的。@H_419_1@
你有没有考虑过使用strace / ltrace ? 你可以看到它正在进行的系统调用,特别是你可以看到正在编写的write / ioctl等调用。@H_419_1@
RS-232 ? 只需用夹子点击RxD / TxD / GND线。 自从我看到任何设备甚至关心DCD,DTR等之后,它一直是永远的@H_419_1@
有一些替代方案:@H_419_1@
用GDB做你自己: 重定向运行过程的输出@H_419_1@
CryoPID允许您捕获linux中正在运行的进程的状态并将其保存到文件中。 然后,可以使用此文件在稍后重新启动后甚至在另一台计算机上恢复进程。@H_419_1@
分布式多线程CheckPointing是一种透明地检查分布在许多机器上并通过套接字连接的任意一组程序的状态的工具。@H_419_1@
script程序存在使用psudo-terminal来执行此 *** 作。 设备/dev/tty通常是特殊的,是指当前进程的控制终端,所以你可能不必重新命名。@H_419_1@
script打开一个psudo终端,然后运行你的shell的另一个实例作为其控制终端(所以/dev/tty指这个shell及其子进程的psudo终端)。 -c选项让你运行一个特定的命令,而不是你的shell。@H_419_1@
script的主要问题是,不可能知道输出文件( ./typescript默认情况下)捕获的数据是以何种方式进行的 – 两种数据流都被转储到相同的文件,看起来类似于屏幕上使用交互式终端(除了包括逃脱,回车,愚蠢的东西,以及通常显示的字符)。@H_419_1@
无论如何,我知道这个问题早已得到解答,但是我认为如果有人要寻找类似的解决方案,而不是使用真正的串口,这可能会有所帮助。@H_419_1@
不简单(至少不是我),但一个机制,应该工作的tty串行驱动程序是一个行纪律 。@H_419_1@
这里的人们已经提出了很好的建议,但是这里有另一个:@H_419_1@
你也可以用你自己的write()写一个共享库,在从libc.so调用write()之前做一些工作。 然后,您可以使用LD_PRELOAD环境变量在进程启动时加载您的库。@H_419_1@ 总结
以上是内存溢出为你收集整理的我怎样才能监视进程和terminal之间的通信?全部内容,希望文章能够帮你解决我怎样才能监视进程和terminal之间的通信?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)