سؤال

لقد كنت أعمل على مشروع C/C++ مضمن مؤخرًا باستخدام Shell في Tornado 2 كوسيلة لتصحيح أخطاء ما يحدث في مجموعتنا.المشكلة الوحيدة في هذا النهج هي أنه نظام معقد، ونتيجة لذلك، لديه قدر لا بأس به من المخرجات.يقوم Tornado بتمرير النافذة "بشكل مفيد" في كل مرة تصل فيها بعض المعلومات الجديدة، مما يعني أنه إذا اكتشفت خطأ ما، فإنه يختفي خارج الموقع بسرعة كبيرة جدًا بحيث لا يمكن رؤيته.في كل مرة تقوم فيها بالتمرير لأعلى للبحث، يضيف النظام المزيد من المعلومات، وبالتالي فإن الطريقة الوحيدة لعرضها هي فصل الجهاز.

أود أن أعرف ما إذا كان لدى أي شخص طريقة لإعادة توجيه الإخراج من تورنادو؟

كنت آمل أن تكون هناك طريقة لتسجيل كل ذلك من تطبيق صغير بلغة python حتى أتمكن من تطبيق عوامل التصفية على المعلومات الواردة.لقد حاولت الاتصال بعملية Tornado، لكن النافذة التي تحتوي على المعلومات ليست CEditCtrl قياسية، لذا كان استخراج النص بهذه الطريقة طريقًا مسدودًا.

أي أفكار أي شخص؟

[يحرر] كان يجب أن أذكر أننا نقوم بتشغيل Tornado 2.1.0 فقط وأن الترقية إلى إصدار أحدث هو أمر خارج عن إرادتي.

[تحرير 2] النافذة المعنية في Tornado هي "AfxFrameOrView42" وفقًا لـ WinID.

هل كانت مفيدة؟

المحلول

هنا طريقة أخرى محتملة:

-> saveFd = open("myfile.txt",0x102, 0777 )
-> oldFd = ioGlobalStdGet(1)
-> ioGlobalStdSet(1, saveFd)
-> runmytest()
...
-> ioGlobalStdSet(1, oldFd)

سيتم إعادة توجيه هذا الجميع نشاط stdout إلى الملف الذي فتحته.قد تضطر إلى التلاعب باسم الملف المفتوح لجعله يكتب على المضيف (على سبيل المثال.استخدم "host:/myfile.txt" أو شيء من هذا القبيل)

نصائح أخرى

يحتوي الغلاف المضيف على إمكانية التسجيل المضمنة.هناك 3 متغيرات بيئة متاحة (في الإصدار 6.x - غير متوفرة في الإصدار 5.x):

سجل (تشغيل/إيقاف):يتحكم في تسجيل الصدفة
RECORD_TYPE (الإدخال/الإخراج/الكل):يحدد ما سوف تقوم بتسجيله
RECORD_FILE :اسم الملف لحفظ الأشياء فيه.

يمكنك استخدام الأمر ?shConfig لتكوين متغير بيئة الصدفة.يعرض shConfig بنفسه المتغيرات.هنا كيف أقوم بإعداد الخاص بي:


-> ?shConfig
...
RECORD = off
RECORD_FILE = C:/test.txt
RECORD_TYPE = output
...

-> ?shConfig RECORD_TYPE all
-> ?shConfig RECORD_FILE myData.txt
-> ?shConfig RECORD on
Started recording commands in 'myData.txt'.

أفترض أنك تستخدم shell المضيف للقيام بذلك.

إذا كنت تجري اختبارًا عن طريق تشغيله من الصدفة مثل "runTest()"، فيمكنك استخدام عامل إعادة التوجيه (>) لإرسال مخرجات هذه الوظيفة إلى ملف نصي على جهازك المضيف.

 > runTest() > mytestResults.txt

سيؤدي هذا إلى حفظ أي مخرجات ينشئها runTest في الملف mytestResults.txt

إذا كنت ترغب في التقاط كل شيء على الشاشة طوال الوقت، فسوف يتعين علي البحث أكثر في هذا الأمر.

RLOGIN VXWORKS-TORGET | تي شيرت إعادة توجيه otpt.txt

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top