Перейти к содержимому


Фото

Проблема с отладкой приложения под WinCE 2013


  • Чтобы отвечать, сперва войдите на форум
2 ответов в теме

#1 sinsin

sinsin

    Member

  • Members
  • ФишкаФишка
  • 61 Сообщений:

Опубликовано 09.03.2016 - 14:53

Здравствуйте.

 

Пытаюсь отладить hello word под Wince 2013 (visual studio 2015), модуль conga-ma3.

 

Заметил странное поведение отладчика: если в BIOS модуля разрешить использование com-порта, то, при работе отладчик сыплет в порт сообщениями:

PID:026F000A TID:03EE001E HeartBeat::transferMain

PID:026F000A TID:03EE001E HeartBeat::transferMain, result: 00000000.
PID:026F000A TID:03EE001E HeartBeat::checkAll, *numActive 0
PID:026F000A TID:03EE001E HeartBeat::checkAll, result: 00000000.
PID:026F000A TID:03EE001E HeartBeat::transferMain
PID:026F000A TID:03EE001E HeartBeat::transferMain, result: 00000000.
PID:026F000A TID:03EE001E HeartBeat::checkAll, *numActive 0
PID:026F000A TID:03EE001E HeartBeat::checkAll, result: 00000000.

 

Если запустить отладку программы, то отладчик выводит лог передачи:

PID:026F000C TID:02D6002A VersionlessSocket::Accept m_listenSocket4

PID:026F000B TID:02D6002A Enter VersionlessSocket handshake
PID:026F000B TID:02D6002A Exit VersionlessSocket handshake 0
PID:026F000B TID:02D6002A CcTcpStream::readSegment in_blockSize 4.
PID:026F000B TID:02D6002A CcTcpStream::readSegment 0
PID:026F000B TID:02D6002A Exit VersionlessSocket receiveStreamSettings 0
PID:026F000B TID:02D6002A Enter VersionlessSocket handshake
PID:026F000B TID:02D6002A Exit VersionlessSocket handshake 0
PID:026F000B TID:02D6002A Exit VersionlessSocket::Accept 0
PID:026F000B TID:02D6002A CcTcpTransportAccept::CreateStream handing over to the raw connection
PID:026F000B TID:02D6002A CcTcpStream::Init m_lastActivityTime 39767.
PID:026F000B TID:02D6002A CcTcpStream::Attach
PID:026F000B TID:02D6002A CcTcpStream::Attach 0
PID:026F000B TID:02D6002A HeartBeat::AddStream
PID:026F000B TID:02D6002A HeartBeat::AddStream, result: 00000000.
PID:026F000B TID:02D6002A Exiting CcTcpTransportAccept::CreateStream result: 00000000.
PID:026F000B TID:02D6002A INFO100: client::TransportListener:CreateStream complete HR=00000000
PID:026F000B TID:02D6002A INFO10: client::GetSecurityOverrides:Overriding connection accept security.
PID:026F000B TID:02D6002A CcTcpStream::Send cbData 1
PID:026F000B TID:02D6002A CcTcpStream::writeSegment bufferSize 1.
PID:026F000B TID:02D6002A CcTcpStream::writeSegment 0
PID:026F000B TID:02D6002A CcTcpStream::Send m_lastActivityTime 39960.
PID:026F000B TID:02D6002A CcTcpStream::readSegment in_blockSize 1.
PID:026F000B TID:02D6002A CcTcpStream::readSegment 0

и т.д., при этом программа на устройство не передается на устройство или передаётся очень  долго.

Если запретить com-порт в BIOS, то программа загружается и работает.

 

 

Есть вопрос: как можно управлять сообщениями, которые пишутся в лог отладчиком?

 

Пробовал писать в реестр:
 

[HKEY_CURRENT_USER\Pegasus\Zones]

"ConmanClient3"=dword:0
"CMAccept3"=dword:0
"DeviceAgentTransport3"=dword:0
"eDbgTL3"=dword:0
"TcpConnectionA3"=dword:0
"ConmanClient3.exe"=dword:0
"CMAccept3.exe"=dword:0
"DeviceAgentTransport3.exe"=dword:0
"eDbgTL3.exe"=dword:0
"TcpConnectionA3.exe"=dword:0
 
[HKEY_LOCAL_MACHINE\DebugZones]
"ConmanClient3"=dword:0
"CMAccept3"=dword:0
"DeviceAgentTransport3"=dword:0
"eDbgTL3"=dword:0
"TcpConnectionA3"=dword:0
"ConmanClient3.exe"=dword:0
"CMAccept3.exe"=dword:0
"DeviceAgentTransport3.exe"=dword:0
"eDbgTL3.exe"=dword:0
"TcpConnectionA3.exe"=dword:0

но это не помогло.

Лог загрузки и попытки отладки программы в приложении.



#2 Shust

Shust

    Advanced Member

  • Members
  • ФишкаФишкаФишка
  • 410 Сообщений:
  • МестоположениеMoscow

Опубликовано 10.03.2016 - 10:19

Илья, привет!

 

 Это бага сборки соответствующих DLL'ек для VS2015.

Я проверил дизассемблером как выводится строка "HeartBeat::transferMain" - для VS2012 используется Coredll_1713 + Coredll_1451 (StringCchVPrintfA + CeLogData).

Для VS2015 - Coredll_1713 + Coredll_545 (StringCchVPrintfA + NKDbgPrintfW)

 

Т.о. VS2015 будет всегда выводить лог, если включен отладочный порт.

 

Отладочный порт можно заткнуть через параметры бутлоадера - loadcepc /c:0 nk.bin или для Biosloader COMPort=0 @ boot.ini

 

Удачи!



#3 sinsin

sinsin

    Member

  • Members
  • ФишкаФишка
  • 61 Сообщений:

Опубликовано 10.03.2016 - 14:37

Илья, привет!

 

 Это бага сборки соответствующих DLL'ек для VS2015.

Я проверил дизассемблером как выводится строка "HeartBeat::transferMain" - для VS2012 используется Coredll_1713 + Coredll_1451 (StringCchVPrintfA + CeLogData).

Для VS2015 - Coredll_1713 + Coredll_545 (StringCchVPrintfA + NKDbgPrintfW)

 

Т.о. VS2015 будет всегда выводить лог, если включен отладочный порт.

 

Отладочный порт можно заткнуть через параметры бутлоадера - loadcepc /c:0 nk.bin или для Biosloader COMPort=0 @ boot.ini

 

Удачи!

Спасибо.

Буду отключать в загрузчике






1 пользователей читают эту тему

0 members, 1 guests, 0 anonymous users