CRASH DI APPLICAZIONE PER PALMARE CHE UTILIZZA SOCKET TCP

martedì 14 febbraio 2006 - 09.51

BELENOS Profilo | Junior Member

Allora...vi aggiorno sulla situazione...se qualche buon'anima volesse darmi un aiuto....grazie in anticipo...

Linguaggio dell'applicativo su palmare: Microsoft Embedded Visual C++ 4.0
Sistema Operativo del palmare: Win CE

Linguaggio dell'applicativo su PC fisso: Microsoft Visual C++ 6.0
Sistema Operativo del PC fisso: Windows XP SP2

Buongiorno...vi espongo un problema...non so se così esposto in maniera generale sia sufficiente per voi per darmi qualche dritta...cmq ci provo...
Io ho un applicativo che gira su un palmare e si connette ad un pc fisso attraverso un driver che utilizza messaggi inviati e ricevuti via wireless per spedire o ricevere informazioni...ad un certo punto il driver sul pc fisso crasha dando un bellissimo messaggio di "La memoria non poteva essere read " al tal indirizzo...ho provato a guardare sui dettagli e ho visto che l'errore viene dato soprattutto nella libreria mfc42.dll, e a volte (anche se di rado) in una libreria realizzata dai tipi che in origine avevano realizzato questo applicativo (e che poi io e altri abbiamo modificato per "tappare" alcuni buchi)...qualcuno di voi sa di cosa si occupa questa libreria e perchè un applicativo di questo genere mi potrebbe dare questo errore????

Successivamente mi sono creato un file di log che mi indica quali funzioni della libreria dei socket vengono richiamate durante la durata dell'applicativo su pc fisso, per permettermi di vedere se sono solo certe funzioni della libreria che danno problemi (come io penso)...ad ogni chiamata a funzione mi apro il file di log(coi dovuti test del caso), mi scrivo sopra che funzione viene richiamata e poi lo chiudo...mi sono accorto che dà errore anche nella MSVCRTD.DLL...Non mi riesce comunque di vedere dove crasha perchè se io abilito la scrittura su un file di log delle funzioni del protocollo di comunicazione richiamate, allora sembra non crashare +...se invece faccio andare la versione senza la scrittura su questo file, allora dopo un pò crasha...e non riesco a vedere dove...proverò con una _ASSERTE al limite...per vedere se in certi intervalli di tempo ci sono dei puntatori che puntano a NULL....non so + che inventarmi!!!

Forse è dovuto questo fatto al fatto che se abilito la scrittura sul file, rallento qualche cosa durante l'esecuzione dell'applicativo e lo stesso in questo caso non incontra errore nell'allocare qualche zona di memoria che altrimenti in certi intervalli di tempo sarebbe deallocata e quindi inutilizzabile??

O è dell'altro???Francamente non so + che pensare...

Brainkiller Profilo | Guru

>Allora...vi aggiorno sulla situazione...se qualche buon'anima
>volesse darmi un aiuto....grazie in anticipo...

Ciao,
le librerie che iniziano con MS sono di Microsoft tipo ls MSVCRT*.DLL e le MFC* pure sono utilizzate dai prodotti costruiti usando le Microsoft Foundation Classes del VC++.

Qui il problema è sicuramente complesso. Il problema della Read Memory Exception è abbastanza comune e può essere causato dalla lettura di un'area di memoria non consentita, più facilmente un puntatore che punta ad un'area non inizializzata o cose simili. Mi sembra più un baco della applicazione che altro.

Una cosa che puoi provare e è fornire le librerie MFC* e MSVCRT.DLL che sono deploiate con l'installazione di quel software. E' possibile che voi abbiate in dotazione una versione di queste DLL più aggiornate e il software vada in crash per questo.

Prima funzionava ?
ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

BELENOS Profilo | Junior Member

prima l'applicativo era disegnato per un altro dispositivo e aveva bachi mostruosi...per questo ora dovendolo disegnare per un nuovo dispositivo ci abbiamo messo le mani....cmq grazie della risposta BrainKiller...farò come dici e vi terrò informati...

NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5