Erro "Nenhuma fonte disponível para main ()" ao depurar C ++ simples no Eclipse com gdb

Estou tendo problemas para depurar um programa C ++ no Eclipse (o RC mais recente do Helios, atualizado com o CDT mais recente) no OSX.

O programa é muito simples (essencialmente Lição 2 dos tutoriais OpenGL da NeHe), consistindo em um arquivo cpp e, usando as estruturas OpenGL e Cocoa, e vinculando-se a libSDL.a e libSDLmain.a.

A estrutura do projeto é muito simples: os arquivos de origem estão em um subdiretório do projeto chamado src / e o executável é criado no diretório raiz do projeto.

O problema é que sempre que tento adicionar pontos de interrupção e depurá-lo, os pontos de interrupção parecem ser atingidos perfeitamente, mas nenhuma fonte é exibida - em vez disso, recebo o erro "Nenhuma fonte disponível para main ()" na janela de código.

Os sinalizadores do compilador têm otimizações definidas como nenhuma e o compilador e o vinculador têm o sinalizador de símbolos de depuração definido (-g).

A configuração de depuração no Eclipse está definida como "Progresso de geração padrão" e o depurador está definido como "gdb".

Agora, o mais estranho é que, se eu tentar depurar exatamente o mesmo executável - ie. exatamente o mesmo que foi criado pelo Eclipse - usando o gdb do Terminal (shell), tudo funciona bem. Os pontos de interrupção são atingidos, o código fonte é exibido, sem problemas.

Eu me certifiquei de que o Eclipse e o shell estejam usando o mesmo executável gdb, e eles são (é / usr / bin / gdb).

Agora posso estar errado, mas tudo isso me sugere que não pode haver um problema com os sinalizadores do compilador e do vinculador (porque o mesmo executável é depurável pelo shell), portanto, presumivelmente, o problema deve estar com a forma como o gdb está sendo chamado de dentro do Eclipse? Talvez quando executado a partir do Eclipse, o gdb está pegando arquivos de configuração diferentes ou algo do que quando é executado a partir do shell? (Ninguem sabe?)

Eu realmente aprecio qualquer ajuda com isso, porque está lentamente me deixando louco!

Por favor, deixe-me saber se existem outros detalhes que seriam úteis - números exatos de versão do Eclipse / cdt / gdb, linhas de comando exatas do vinculador / compilador, etc. - e eu atualizarei com prazer esta postagem com eles.

Muito obrigado antecipadamente,

thoughton.

---editado @ "há 14 horas" ---

Eu tentei a opção "adicionar caminho do sistema de arquivos" (com "subpastas de pesquisa"), mas isso não funcionou. Eu também tentei criar um novo projeto completamente plano, mas isso também não funcionou. Eu até tentei obter uma versão do Galileo (eclipse-SDK-3.5.2RC4 com atualização CDT), mas isso não fez diferença (além do gdb ser mais lento para o lançamento).

E aqui está outra coisa estranha que eu notei: quando eu receber a mensagem "Nenhuma fonte disponível", se eu alternar o Console do Eclipse para exibir o console "gdb" e também ativar o "Modo de console detalhado" para que eu possa comunicá-lo, eu posso em seguida, emita os comandos "l" e "bt" e faça com que funcionem com êxito, mostrando a origem e a pilha corretas onde meu ponto de interrupção foi atingido. O que, me corrija se estiver errado, deve significar que as informações estão lá e o gdb está sendo chamado corretamente - então por que o Eclipse não verá essas informações?

Estou chegando perto de desistir do Eclipse para ser honesto ... cheguei a ele com tantas esperanças também.

Qualquer ajuda ou pensamento adicional seria muito apreciado.

t.

questionAnswers(12)

yourAnswerToTheQuestion