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

问题描述 投票:6回答:1

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

gammu identify - > No response in specified timeout. Probably phone not connected.

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

但是,我的问题主要是关于在strace下运行SAME PROGRAM,它没有问题,并且没有超时。

strace -e trace=open,close,read,write gammu identify - >(关于调制解调器的一大堆信息)

什么/将会做什么会导致这种行为上的差异? strace如何影响其子进程?

(在Ubuntu 18.04上运行,Gammu 1.39.0)

strace gammu
1个回答
1
投票

我在不同的平台上看到过这种行为。有时代码在调试中成功运行。这意味着由于调试所有代码工作较慢,因为该用户没有超时。例

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

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

strace还运行程序更多的控制,如调试和更慢。因为gammu看起来像工作。可能你可以给gammu配置和更改超时检查https://wammu.eu/docs/manual/smsd/config.html

© www.soinside.com 2019 - 2024. All rights reserved.