Сеансы оболочки и отладка printf под vxWorks 6.9 - PullRequest
0 голосов
/ 14 мая 2018

Я запускаю приложение vxWorks C, которое запускается внутри сценария загрузки. Все работает нормально, за исключением того, что я не вижу следов отладки printf моего программного обеспечения, когда я подключаюсь удаленно к встроенному серверу telnet после того, как скрипт запустил мое программное обеспечение во время загрузки.

Я вижу следы отладки в моем сеансе telnet, когда я запускаю программное обеспечение вручную по приглашению.

Я думаю, что это связано с тем, что для параметра ядра SHELL_MAX_SESSIONS установлено значение -1 (не ограничено), поэтому я полагаю, что начальный сеанс, который по умолчанию установлен на последовательной строке, не показывает следы отладки на новом сессия телнет. Я попытался установить для параметра SHELL_MAX_SESSIONS значение 1, но проиграл сеанс telnet. И 2 сеанса дают мне ту же проблему.

Я хотел бы знать, есть ли способ централизовать или перенаправить все выходные данные stdio на каждом открытом сеансе?

Я использую vxWorks 6.9.

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Если вы хотите перенаправить все выходные данные задачи в текущую оболочку входа в систему, см. https://stackoverflow.com/a/52749183/10481046

0 голосов
/ 21 мая 2018

У меня была похожая проблема с VxWorks 6.7 (и из моих коллег я знаю, что 6.9 ведет себя так же).

Мое решение (хотя это нехорошо) состояло в том, чтобы создать функцию внутри моегоПрограмма, которая перенаправляет stdout и stderr всех задач на stdout и stderr текущей (вызывающей) задачи (например, текущего сеанса telnet).

Посмотрите на функции ioTaskStdGet иioTaskStdSet из ioLib .

...