gpt4 book ai didi

strace - Gammu 在 strace 下运行时有不同的行为

转载 作者:行者123 更新时间:2023-12-02 06:36:35 27 4
gpt4 key购买 nike

我正在尝试调试 Gammu,一个“移动电话的库和命令行实用程序”,它在与调制解调器正常通信时“超时”。

gammu recognize -> 在指定的超时时间内没有响应。可能是手机未连接。

查看它产生的额外调试信息,由于某种原因,它没有“识别”调制解调器IS给出的响应(假设它在通过手动拨号AT命令时有正确的响应)串行终端)。

但是,我的问题主要是关于在 strace 下运行相同的程序,它没有问题,并且不会超时。

strace -e trace=open,close,read,write gammu recognize ->(有关调制解调器的全部信息)

strace 正在做什么会导致这种行为差异? strace 如何影响其子进程?

(在 Ubuntu 18.04、Gammu 1.39.0 上运行)

最佳答案

我在不同的平台上都见过这种行为。有时代码在调试中运行成功。这意味着由于调试,所有代码的运行速度都会变慢,并且用户不会超时。示例

makeSomeCallToServerOrPhone();
if(noResponseIn(5))
throw new TimeOutException();

如果服务器没有响应,应用程序将在 5 毫秒内抛出异常。在调试中,这将起作用,因为当您逐步运行代码时。服务器会及时响应,一切都会正常。但在正常运行时,5 毫秒非常小,服务器或电话可能无法及时响应,出现异常。

strace 还可以像调试一样更受控制地运行程序并且速度更慢。因为 gammu 看起来像是在工作。也许你可以给 gammu 配置并更改超时检查 https://wammu.eu/docs/manual/smsd/config.html

关于strace - Gammu 在 strace 下运行时有不同的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54476896/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com