Eu tenho pontos de interrupção definidos, mas o Xcode parece ignorá-los.
Eu tenho pontos de interrupção definidos, mas o Xcode parece ignorá-los.
Respostas:
Primeiro de tudo, eu concordo 100% com o pessoal anteriores que diziam transformar OFF Load Symbols Lazily
.
Tenho mais duas coisas a acrescentar.
(Minha primeira sugestão parece óbvia, mas a primeira vez que alguém sugeriu para mim, minha reação foi mais ou menos assim: "vamos lá, por favor, você realmente acha que eu não saberia melhor ...... oh.")
Certifique-se de não ter definido acidentalmente "Configuração de build ativa" como "Versão".
Em "Alvos" na exibição da árvore gráfica do seu projeto, clique com o botão direito do mouse no Alvo e selecione "Obter informações". Procure uma propriedade chamada "Generate Debug Symbols" (ou similar) e certifique-se de que esteja CHECKED (aka ON). Além disso, você pode tentar encontrar (também em Target >> Get Info) uma propriedade chamada "Debug Information Format" e defini-la como "Dwarf with dsym file".
Existem várias outras propriedades em Destino >> Obter Informações que podem afetá-lo. Procure coisas como otimizar ou compactar código e DESLIGUE essas coisas (presumo que você esteja trabalhando em modo de depuração, de modo que este não é um mau conselho). Além disso, procure itens como símbolos de remoção e certifique-se de que também esteja DESLIGADO. Por exemplo, "Strip Linked Product" deve ser definido como "No" para o destino de Depuração.
No Xcode 7, o que funcionou para mim foi:
1) Certifique-se de que o destino -> esquema -> Executar - está no modo de depuração (era Release)
2) Certifique-se de marcar a opção "Depurar executável" veja abaixo:
Vá para as preferências de depuração do Xcode. Certifique-se de que "Load Symbols lazily" NÃO esteja selecionado.
Eu estava tendo o mesmo problema (de novo). Depois de verificar três vezes "Carregar símbolos preguiçosamente" e remover e depurar sinalizadores de geração de informações, fiz o seguinte:
Você pode realizar a mesma tarefa no localizador clicando com o botão direito / opção no pacote .xcodeproj e selecionando "Mostrar conteúdo do pacote".
Quando reiniciei o Xcode, todas as minhas janelas foram redefinidas para as posições padrão, etc, mas os pontos de interrupção funcionaram!
Outra razão
Definido DeploymentPostprocessing
como NÃO em BuildSettings - detalhes aqui
Em resumo -
A ativação dessa configuração indica que os binários devem ser removidos e o modo de arquivo, o proprietário e as informações do grupo devem ser definidos para valores padrão. [DEPLOYMENT_POSTPROCESSING]
YES
apenas no meu subproject
e os pontos de interrupção não funcionaram subprojects
. E depois de definir NO
, ficou perfeito!
Veja esta postagem: Breakpoints não funcionam no Xcode? . Você pode estar pressionando "Executar" em vez de "Depurar", caso em que seu programa não está sendo executado com a ajuda do gdb, caso em que você não pode esperar que os pontos de interrupção funcionem!
Uma das soluções possíveis para isso poderia ser .... vá para Produto> Esquema> Editar esquema> .. Em Executar> informações> Verificação de executável "Depurar executável".
Isso me deixou no Xcode 9 por meio dia frustrante. Acabou sendo uma configuração de depuração simples.
Vá em Debug> Debug Workflow e certifique-se de que 'Always Show Disassembly' está desativado. Simples assim. :(
Cheguei a esta página com o mesmo problema (o código C no Xcode 6 não para nos pontos de interrupção) e nenhuma das soluções acima funcionou (o projeto estava praticamente fora da caixa, em termos de configurações, tão pouca chance de qualquer uma das configurações do depurador ser definido com o valor errado) ...
Depois de perder algum tempo reduzindo o problema, finalmente descobri o culpado (para o meu código):
Xcode (/ LLVM) não gosta do estilo Bison #line
comandos de pré processador do .
Removê-los corrigiu o problema (o depurador parou em meus pontos de interrupção).
Tenho muitos problemas com pontos de interrupção no Xcode (2.4.1). Eu uso um projeto que contém apenas outros projetos (como uma solução no Visual Studio). Às vezes, acho que os pontos de interrupção não funcionam, a menos que haja pelo menos um ponto de interrupção definido no projeto inicial (ou seja, aquele que contém o ponto de entrada do meu código). Se os únicos pontos de interrupção estiverem em projetos de "nível inferior", eles serão ignorados.
Também parece que o Xcode só lida com operações de ponto de interrupção corretamente se você agir no ponto de interrupção quando estiver no projeto que contém a linha de origem do ponto de interrupção.
Se eu tentar excluir ou desabilitar pontos de interrupção por meio de outro projeto, a ação às vezes não tem efeito, mesmo que o depurador indique que sim. Portanto, vou acabar quebrando em pontos de interrupção desativados ou em um ponto de interrupção (agora invisível) que removi anteriormente.
Meus pontos de interrupção não funcionaram e, em seguida, fiz Build / Clean All Targets para fazê-los funcionar novamente.
Acho que o problema pode ser incompatibilidade entre as versões do dispositivo e o Xcode. Tenho esse problema ao tentar depurar no meu iPhone 4S executando o iOS 5.0.1. Ainda estou usando o Xcode 3.2.5. Peguei os símbolos do aparelho selecionando "usar este dispositivo para desenvolvimento" na janela do Organizer. No entanto, este telefone se recusa a fazer um breakpoint Meu antigo 3GS vai quebrar, mesmo projeto Xcode, mesmas configurações ... apenas um dispositivo diferente e está rodando iOS 4.0. Acho que esse é um bug do Xcode no 3.2.5, já que tenho os símbolos. Tendo tentado todas as soluções postadas aqui até agora, decidi que a solução para meu problema é ir em frente e atualizar para o XCode 4. Talvez você não possa depurar com eficácia, a menos que seu SDK base seja pelo menos tão alto quanto o sistema no qual depurar. Talvez isso seja óbvio - alguém pode confirmar?
Edit: Vou atualizar quando puder confirmar que isso é verdade.
Excluir minha pasta Build resolveu o problema para mim.
Aconteceu a mesma coisa comigo no XCode 6.3.1. Consegui consertar:
Depois de fazer essa alteração, defino as opções de Mover pontos de interrupção de volta para o projeto e desmarco Compartilhar pontos de interrupção opção , e ainda funciona.
Eu não sei exatamente por que, mas isso recupera meus pontos de interrupção.
No Xcode 4
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
Se tudo mais falhar, em vez de um ponto de interrupção, você pode chamar a seguinte função:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
Para retomar, defina manualmente i para zero e, em seguida, pressione o botão Continuar.
Eu tentei todas as coisas acima, mas para mim apenas desativar os pontos de interrupção de depuração uma vez e, em seguida, ativá-los funcionou.
Ao definir o seu ponto de interrupção, clique com o botão direito e você deverá obter várias opções sobre como o ponto de interrupção é tratado (registrar vars e continuar, pausar a execução, etc)
Além disso, certifique-se de que a opção "Carregar símbolos lentamente" não esteja selecionada nas preferências de depuração.
(Aplica-se ao Xcode 3.1, não tenho certeza sobre versões anteriores / futuras)
Certifique-se também de que a distribuição AppStore do aplicativo não está instalada no dispositivo.
Outra coisa a verificar é se você tiver um arquivo plist "Direitos" para o seu modo de depuração (possivelmente porque você está fazendo coisas com o Keychain), certifique-se de que o arquivo plist tenha a linha "get-task-allow" = YES. Sem ele, a depuração e o registro serão interrompidos.
Parece haver 3 estados para os pontos de interrupção no Xcode. Se você clicar neles, eles passarão por diferentes configurações. O azul escuro está ativado, o acinzentado está desativado e às vezes vejo um azul claro que exigia que eu clique no ponto de interrupção novamente para que ele mude para a cor azul escuro.
Além disso, certifique-se de iniciá-lo com o comando debug e não com o comando run. Você pode fazer isso clicando em opção + comando + retorno ou na opção Ir (depurar) no menu Executar.
Eu tenho Xcode 3.2.3 SDK 4.1 Breakpoints falharão aleatoriamente. Eu descobri que se você limpar o build e usar o comando touch no build, eles funcionam novamente.
Aqui está um obscuro que encontrei: se você estiver trabalhando em uma biblioteca compartilhada (ou um plug-in), seus pontos de interrupção ficarão amarelos na inicialização, o que pode fazer com que você martele seu teclado de frustração e interrompa o processo de depuração. Bem, não faça isso! Os símbolos não serão carregados até que o aplicativo carregue a biblioteca, ponto em que os pontos de interrupção se tornarão válidos. Eu tive este problema com um plugin do navegador ... BPs foram desativados até que eu naveguei para uma página que instanciou meu plugin.