2009-07-29 12 views
9

Sono spostato da Windows a Ubuntu Linux, e ora voglio configurare qui l'ambiente di sviluppo. Il problema è che ho bisognoApplicazione Windows cross-debug su Linux box in Eclipse CDT

  1. C/C++ IDE paragonabile a Visual Studio
  2. modo per generare file binari di Windows PE
  3. Way fare il debug di file binari di Windows PE

a prima volta ho provato Codice :: Blocks. Here Trovo la guida alla configurazione per lo sviluppo incrociato, quindi sono riuscito a ottenere "Hello World" compilato e in esecuzione su Wine. Inoltre, ha funzionato anche il debugging.

Ma poi ho scoperto che il plugin Eclipse + CDT è l'IDE molto più avanzato. Ho trascorso un po 'di tempo e finalmente ho ottenuto il progetto compilato e collegato.

Ora sto cercando di ottenere la versione MinGW Insight di GDB funzionante all'interno di Eclipse CDT. Il modo semplice per usare il debugger descritto nella guida Code :: Blocks non funzionerà più. Continuo a ricevere messaggi di "Errore durante la creazione della sessione".

Quindi la mia domanda è: come posso utilizzare MinGW GDB in Wine come debugger back-end in Eclipse? Oppure, quale è il migliore IDE per Linux-> Sviluppo incrociato di Windows?

risposta

3

Mi chiedo che nessuno abbia ancora risposto.

  1. QtCreator. Non essere confuso dal suo nome, QtCreator funziona bene con qualsiasi tipo di codice C++, non è necessario codificare in Qt per usarlo. È come FOSS Visual Studio: ha anche una sintassi che verifica "on-fly".

  2. MinGW. Qui non c'è molto da dire, è solo creare gli eseguibili di Win PE, e funziona. È disponibile nei repository. Si noti che un'applicazione Win GUI ha un bit speciale nel set di intestazione PE; quindi, per creare un'applicazione GUI con MinGW devi passare un'opzione -mwindows per impostare questo bit.

  3. Questo è un problema. Davvero: sto solo cercando di eseguire il debug di un'applicazione Windows e non ho ancora trovato un modo per farlo. Fra breve ricordare qui quello che ho provato finora, solo in ordine per non calpestare i miei rastrelli:

    • winedbg. Probabilmente dovrebbe funzionare, ma per me no. Quando imposto un punto di interruzione, ad esempio br 43, viene indicato Unable to add breakpoint (unknown address 7b860807).

    • winedbg. Sì, di nuovo, ma questa volta lo useremo come questo winedbg --gbd per renderlo proxy di un comando a gdb. Probabilmente questo è l'unico modo per eseguire il debug di un'applicazione, ma ha degli svantaggi: in primo luogo, per riavviare un'applicazione devi uscire dal debugger; se inserisci run, la destinazione remota non lo supporta. In secondo luogo, non ho idea di come eseguire il debug di un'applicazione multithread; quando ho iniziato questo, sono incappato in un errore Non-stop mode requested, but remote does not support non-stop, e dopo aver impostato un punto di interruzione e avviarlo dice: Cannot insert breakpoint 1. e Cannot access memory at address 0x401654.Quindi, per fare questo lavoro mi serviva per rinominare il mio file .gdbinit(cioè la modalità non-stop è impostata lì).

    • gdb.exe. Ero sicuro di aver trovato un modo: l'uso semplice di una versione di Windows di gdb dovrebbe risolvere i problemi; più oltre, per me, dato che sono un ragazzo di Emacs, sarebbe assolutamente lo stesso del debugging con gdb nativo. Ma ahimè, il gdb di Windows non ha funzionato. Se lo eseguo e inserisco qualsiasi comando, semplicemente non fa nulla. Reagisce solo su Ctrl-c e Ctrl-z comandi. Probabilmente proverò nel mio tempo libero per fare una domanda sulla mailing list. Bene, ora non possiamo usarlo ...

Quindi quello che abbiamo che fare con il debug? Molto probabilmente cerchi un altro debugger di Windows che funzioni con WINE. Se ricordo correttamente, OllyDbg ha funzionato, ma al momento non so come farlo mostrare un codice sorgente.

+0

+1 per QtCreator. Funziona molto bene con la catena di strumenti GCC. – yasouser

+0

Non aggiornerò ancora il post, piuttosto lascerò le informazioni nel commento: ho trovato come eseguire 'gdb.exe' con wine per farlo funzionare correttamente, dovrebbe apparire come' wineconsole --backend = curses gdb.exe' . –

+0

Ho appena provato in emacs 'gdb.exe', è inutilizzabile :( –

0

si può provare NetBeans. È un buon gratuito, open source e Cross Platform Support IDE.

-2

Eseguire Windows in una macchina virtuale?

Seriamente, la tua domanda è buona, ma probabilmente non vale la pena spendere il tempo per capire la risposta (soprattutto perché nessuno sembra avere una risposta pronta). Se hai davvero del lavoro da fare, la risposta è Windows nativo o Windows in una VM.

+0

Io sono un Windows in VM, e questa non è affatto una buona idea, dico, dato che il mio PC ha solo 2 GB di RAM. Sono sicuro che questo vale la pena passare del tempo come una volta lo trovo , Posso usarlo sempre e ovunque. –

Problemi correlati