Гамму имеет другое поведение при беге под натяжением - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь отладить Gammu, «библиотеку и утилиту командной строки для мобильных телефонов», которая «отключается» при обычной связи с модемом.

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

Если посмотреть на дополнительную отладочную информацию, которую он производит, то по какой-то причине он «не распознает» ответ, который дает модем IS (если он имеет правильные ответы при наборе команд АТ черезручной последовательный терминал).

Тем не менее, мой вопрос, прежде всего, о запуске ЖЕ ПРОГРАММЫ под strace, где она не имеет никаких проблем и не делает тайм-аут.

strace -e trace=open,close,read,write gammu identify -> (вся связкаинформация о модеме)

Что делает / будет делать strace, что приведет к этой разнице в поведении?Как strace влияет на дочерние процессы?

(работает в Ubuntu 18.04, Gammu 1.39.0)

1 Ответ

0 голосов
/ 17 февраля 2019

Я видел такое поведение на разных платформах.когда-нибудь код успешно выполняется при отладке.это означает, что из-за отладки весь код работает медленнее и из-за этого пользователь не получает таймаутпример

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

приложение сгенерирует исключение через 5 миллисекунд, если от сервера не будет ответа.в отладке это будет работать, потому что когда вы запускаете свой код шаг за шагом.сервер ответит вовремя и все будет работать.но в обычном режиме эти 5 миллисекунд очень малы, и сервер или телефон могут не отвечать вовремя, когда вы получите исключение.

strace также запускает программу под контролем, например, отладку и медленную работу.и из-за этого гамму выглядит как работа.вероятно, вы можете указать гамму конфигурации и изменить тайм-ауты https://wammu.eu/docs/manual/smsd/config.html

...