Cruz-debug aplicativo do Windows na caixa de Linux em Eclipse CDT
-
05-07-2019 - |
Pergunta
Eu sou movido a partir do Windows para o Ubuntu Linux, e agora eu quero criar ambiente de desenvolvimento aqui. O problema é que eu preciso
- C / C ++ IDE comparável ao Visual Studio
- Caminho para gerar binários do Windows PE
- Way fazer binários de depuração do Windows PE
Na primeira vez que tentei Code :: Blocks. Aqui Acho guia para configurá-lo para cross-desenvolvimento, então eu consegui para obter "Olá mundo" compilada e funcionando no Wine. Além disso, a depuração trabalhou também.
Mas então descobri que plugin do Eclipse + CDT é muito IDE mais avançado. Passei algum tempo e, finalmente, obter projeto compilado e ligado.
Agora eu estou tentando obter a versão MinGW introspecção de GDB trabalhando dentro Eclipse CDT. maneira simples de depurador uso descrito no guia Code :: Blocks não funcionará mais. I continuar a receber "Erro ao criar a sessão" mensagens.
Assim, a minha pergunta é: como posso usar MinGW GDB no Wine como depurador back-end em Eclipse? Ou, o que é melhor IDE para Linux-> Windows cross-desenvolvimento?
Solução
Eu estou querendo que ninguém respondeu isso ainda.
-
QtCreator. Não pode ser confundido por seu nome, QtCreator funciona é muito bem com qualquer tipo de código C ++, você não precisa de código em Qt para usá-lo. É como FOSS Visual Studio:. Ele tem sequer uma verificação de sintaxe "na mosca"
-
MinGW. Aqui não há muito a dizer, é apenas cria executáveis ??Win PE, e ele funciona. Ele está disponível em repositórios. Note que algumas aplicações Win GUI têm pouco especial nele do set de cabeçalho PE; assim, a fim de criar a aplicação GUI com MinGW você tem que passar por um
-mwindows
opção para definir este bit. -
Este é um problema. Realmente: Eu só estou tentando depurar um aplicativo do Windows, e não encontrou ainda uma maneira de fazê-lo. Vou logo recordar aqui o que eu tentei até agora, apenas para que você não etapa em meus ancinhos:
-
winedbg . Provavelmente ele deve funcionar, mas para mim isso não aconteceu. Quando eu definir um ponto de interrupção, ou seja, como esta
br 43
, dizUnable to add breakpoint (unknown address 7b860807)
. -
winedbg . É, de novo, mas desta vez, vamos usá-lo como este
winedbg --gbd
para torná-lo proxy de comandos paragdb
. Provavelmente esta é a única forma de depurar um aplicativo, mas tem uma desvantagens: primeiro, a fim de reiniciar uma aplicação você tem que depurador saída; se você digitarrun
diz que o destino remoto não suporta isso. Em segundo lugar, não tenho sequer idéia de como depurar um aplicativo com vários segmentos; quando eu comecei este primeiro, me deparei com umNon-stop mode requested, but remote does not support non-stop
erro, e depois de definir um ponto de interrupção e iniciá-lo diz:Cannot insert breakpoint 1.
eCannot access memory at address 0x401654
. Assim, a fim de fazer este trabalho eu era necessária para renomear meu arquivo.gdbinit
(isto é, modo non-stop. Estiver definido lá) . -
gdb.exe . Eu tinha certeza que eu encontrei uma maneira: o uso simples de uma versão Windows do
gdb
deve resolver problemas; mais longo, para mim, como eu sou um cara Emacs, seria absolutamente o mesmo que a depuração com gdb nativa. Mas, infelizmente, as janelas GDB simplesmente não funcionam. Se eu executá-lo, e entrar qualquer comando, ele simplesmente não faz nada. Ele só reage em Ctrl-c e Ctrl-z comandos. Provavelmente, vou tentar no meu tempo livre para fazer uma pergunta sobre isso na lista de discussão. Bem, agora não podemos usá-lo ...
-
Então, o que temos fazer com depuração? Muito provavelmente procurar outro depurador Windows que funciona sob VINHO . Se bem me lembro, OllyDbg funcionou, mas eu não sei no momento como fazê-lo mostrar um código-fonte.
Outras dicas
Você pode tentar NetBeans .É um bem livre, de código aberto e Cross Platform Suporte IDE.
Execute o Windows em uma máquina virtual?
A sério, sua pergunta é boa, mas provavelmente não vale a pena gastar o tempo para descobrir a resposta (especialmente: uma vez que ninguém parece ter uma resposta pronta). Se você tem o trabalho real para fazer, nativo do Windows ou Windows em um VM é a resposta.