“Uno o più punti di interruzione non possono essere impostate e sono state disattivate. L'esecuzione si ferma all'inizio del programma.”

StackOverflow https://stackoverflow.com/questions/2787999

  •  04-10-2019
  •  | 
  •  

Domanda

Ho impostato un punto di interruzione nel mio codice in Visual-C ++, ma quando corro, vedo l'errore riportato nel titolo.

So che questo problema è stato fatto prima su Stack Overflow ( i punti di interruzione non possono essere impostate e sono state disattivate ), ma nessuna delle risposte là pienamente spiegate il problema che sto vedendo. Il più vicino che posso vedere è qualcosa circa il linker, ma non capiscono che -. Quindi se qualcuno potrebbe spiegare in modo più dettagliato che sarebbe grande

Nel mio caso, ho 2 progetti in Visual C ++ - la DSW di produzione, e il codice di prova DSW. Ho caricato e ricostruito entrambi dsws in modalità debug. Voglio un punto di interruzione nel codice di produzione, che è gestito tramite gli script di test. Il mio problema è che il messaggio di errore quando si esegue il codice di prova, perché il punto di rottura è nel codice di produzione, che non viene caricato all'avvio di prova.

Verso l'inizio dello script di test c'è un comando mytest_initialize (). Immagino che questo si spegne, con portata fino alla dll di produzione. Una volta che questa linea ha eseguito, posso mettere il punto di interruzione nel mio codice di produzione e correre fino a quando ho colpito. Ma è abbastanza fastidioso dover correre a questa linea, impostare il punto di interruzione e continuare ogni volta che voglio per eseguire il test.

Quindi penso che il problema sia Visual C ++ non si rende conto i due progetti sono legati. E 'questo un problema di linker? Che cosa fa il linker fare e cosa impostazioni dovrei cambiare per fare questo lavoro?

Grazie in anticipo. Mi scuso se invece dovrei aggiungendo questa domanda a quella già esistente, questo è il mio primo post in modo non del tutto sicuro di come questo dovrebbe funzionare.

[Update 1] Penso che Chris O ha identificato il problema. Io aggiungo un ulteriore aggiornamento se sono in grado di capire come utilizzare le impostazioni di progetto per fare questo lavoro.

Nessuna soluzione corretta

Altri suggerimenti

Sembra che si sta utilizzando VC6, dal momento che si parla di file DSW. Penso che sia buono come si arriva in VC6, è necessario aggiungere manualmente il punto di interruzione dopo che il modulo è caricato da LoadLibrary. In realtà, ci potrebbe essere un ambiente di progetto di debug, in modo da poter specificare quali DLL da caricare quando il debug del progetto, che non mancherà di tenere i punti di interruzione abilitati quando colpisce F5.

Si può anche provare a collegare il debugger dopo si conosce il mytest_initialize () è stato chiamato, che potrebbero mantenere i punti di interruzione abilitati.

Ho avuto questo problema a volte, ma sempre passare questo con alcune azioni di sostituzione del codice.

Qui è alcuni post ragazzo, come lui aveva riparato.

La speranza aiuta.

Nel mio caso ho risolto questo impostando il progetto DLL che contiene il punto di interruzione come attivo del progetto e ha cambiato le impostazioni di debug per questo progetto (tasto destro del mouse progetto >> Impostazioni >> scheda Debug) per punto al progetto che in realtà corre e accessi la DLL. "Eseguibile per sessione di debug:" e "directory di lavoro:". Dovrebbe essere impostato l'eseguibile che in realtà si vuole correre e la sua directory corrispondente

Spero che questo è di alcun aiuto.

tasto destro del mouse progetto >> Impostazioni >> scheda Collegamento controllare Genera informazioni di debug controllare sul link in modo incrementale

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