Domanda

Ho alcuni problemi con uno dei progetti su cui sto lavorando su Windows (64 bit). Il programma di volte in crash, a volte non lo fa, e ho il sospetto il problema da collegare con più di runtime C collegato. Come posso rilevare questo su Windows? Ho provato con Depends.exe, ma non hanno segnalato il CRT

È stato utile?

Soluzione

E 'piuttosto improbabile che con successo è possibile collegare in modo statico contro più librerie di runtime C - si dovrebbe incorrere in molti conflitti definizione di simboli che almeno la produzione di avvertimenti voluminosi, e solo un ingegnere spericolato li ignorano

.

Con depends, vorrei fare in modo di utilizzare l'opzione profilazione dinamica, per controllare tutte le dipendenze per CRTLs dinamiche che caricano. Se non gira su qualche cosa, ho il sospetto che il problema è altrove.

Ho il sospetto il problema è altrove, in ogni caso, anche se, come DLL con le API di livello C non dovrebbe, di norma, si basano su stato condiviso nel CRTL - più comunemente l'allocatore di memoria - e dovrebbe avere adottare un protocollo standardizzato per la gestione della memoria cross-API, come chiamante-alloca, callee utilizzazioni, o passando callback allocazione di memoria, ecc in altre parole, più CRTLs nello stesso processo non è normalmente un problema dovuto al corretto utilizzo di una memoria gestione del protocollo.

Per i guasti transitori, ho il sospetto di corruzione multithreading o heap.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top