Pergunta

Eu tenho pontos de interrupção definidos, mas Xcode parece ignorá-los.

Foi útil?

Solução

Primeiro de tudo, eu concordo 100% com o anterior gente que disse turno FORA Load Symbols Lazily.

Eu tenho mais duas coisas a acrescentar.

(A minha primeira sugestão parece óbvio, mas a primeira vez que alguém o sugeriu para mim, a minha reação foi ao longo destas linhas:"venha, por favor, você acha que eu não saberia o melhor......oh.")

  1. Certifique-se de que você não acidentalmente definir "Active a Configuração de Build" para "Lançamento."

  2. Em "Alvos" no gráfico de visualização da árvore do seu projeto, clique com o direito sobre o Alvo e fazer "Get Info." Olhar para uma propriedade chamada "Gerar Símbolos de Depuração" (ou similar) e certifique-se de que esta é VERIFICADA (aka DIANTE).Além disso, você pode tentar encontrar (também em Alvo >> Obter Informações) uma propriedade chamada "Formato de Informações de Depuração" e definindo-o como "Anão com dsym arquivo."

Há uma série de outras propriedades em Destino >> Obter Informações que podem afetar você.Olhar para as coisas como otimizar ou compressão de código e transformar essa coisas (eu suponho que você está trabalhando em um modo de depuração, para que esta não é uma má orientação).Também, olhar para as coisas como stripping símbolos e certifique-se de que também está FORA.Por exemplo, "Tira Vinculada do Produto" deve ser definido para "Não" para o destino de Depuração.

Outras dicas

No Xcode 7, que funcionou para mim foi:

1) certifique-se de que o destino -> esquema -> Executar - está em modo de Depuração (Lançamento)

2) certifique-se de marcar a opção "Depuração executável" veja abaixo:

enter image description here

Ir para o Xcode preferências de Depuração.Certifique-se de que "Carregar Símbolos preguiçosamente" NÃO está selecionada.

Eu estava apenas tendo este mesmo problema (novamente).Depois de triplo a "Carga de símbolos preguiçosamente" e o descascamento e informações de depuração de geração de sinalizadores, eu fiz o seguinte:

  1. saia do Xcode
  2. abra uma janela de terminal e cd para o diretório de projeto
  3. cd no .xcodeproj diretório
  4. excluir tudo, exceto o .pbxproj arquivo (eu tinha frank.mode1v3 e frank.pbxuser)

Você pode realizar a mesma tarefa no localizador de direito/opção-clicando em .xcodeproj bundle e escolhendo "Mostrar Conteúdo do Pacote".

Quando eu reiniciei o Xcode, todo o meu windows tinha redefinir para padrão de posições, etc, mas pontos de interrupção funcionou!

Para Xcode 4.x:Goto Produto>Depuração do Fluxo de trabalho e desmarque a opção "Mostrar Desmontagem Quando a Depuração".

Para Xcode 5.x Ir para Depurar>Depurar o Fluxo de trabalho e desmarque a opção "Mostrar Desmontagem Quando a Depuração".

Veja este post: Pontos de interrupção não funciona no Xcode?.Você pode estar empurrando "Executar" em vez de "Depuração", caso em que o 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 para o trabalho!

Outro motivo

Conjunto DeploymentPostprocessing para NÃO BuildSettings - mais informações aqui

Em curto

Ativar esta configuração indica que os binários devem ser removidos e modo de arquivo, proprietário e informações do grupo deve ser definido para o padrão de valores.[DEPLOYMENT_POSTPROCESSING]

enter image description here

Veio a esta página com o mesmo problema (código C no Xcode 6 não parar em pontos de interrupção) e nenhuma das soluções acima funcionou (o projeto foi praticamente fora da caixa, definições-sábios, tão pouca chance para qualquer uma das configurações do depurador para ser definido o valor errado)...

Depois de desperdiçar algum tempo, reduzir o problema, eu finalmente descobri o culpado (para o meu código):

Xcode (/LLVM) não gosta de Bison-estilo #line comandos do pré-processador.

Removê-los corrigido o problema (depurador parou na minha pontos de interrupção).

Para Xcode 4:

go Product -> Debug ->  Activate Breakpoints

Este tinha-me no Xcode 9 de metade de um dia frustrante.Acabou sido uma simples configuração de depuração.

Ir Depurar > Depurar o Fluxo de trabalho e certifique-se de Sempre Mostrar a Desmontagem' é desligado.Simples assim.:(

Solução para mim com o XCode 9.4.1 (não parar em qualquer ponto de interrupção):

Em Destino build -> Build Settings -> Nível de Otimização:Alternado de "Otimizar para velocidade" -> "Nenhum de otimização" (agora é mais lento, mas funciona)

Eu tenho um monte de problemas com pontos de interrupção no Xcode (2.4.1).Eu uso um projeto que contém outros projetos (como uma Solução no Visual Studio).Eu acho às vezes que os pontos de interrupção não funcionam em todos, a menos que exista pelo menos um ponto de interrupção definido no início do projecto (por exemplo,o que contém o ponto de entrada para o meu código).Se a apenas pontos de interrupção estão no "nível inferior" projetos", eles apenas se ignorado.

Também parece como se Xcode só trata de ponto de interrupção de operações corretamente se você agir no ponto de interrupção quando você está no projeto que contém a linha de origem o ponto de interrupção no.

Se eu tente apagar ou desativar pontos de interrupção através de outro projeto, a ação, por vezes, não ter efeito, mesmo que o depurador indica que ele tem.Então eu vou encontrar-me quebrar com deficiência para pontos de interrupção, ou em um (agora invisíveis) ponto de interrupção que eu removido anteriormente.

Eu tive meus pontos de interrupção não funciona e, em seguida, feito de Construir / Limpar Todos os Destinos para fazê-los funcionar.

Eu acho que poderia ser o problema de incompatibilidade entre o dispositivo e versões do Xcode.Eu tenho esse problema ao tentar depurar no meu iPhone 4S com iOS 5.0.1.Eu ainda estou usando o Xcode 3.2.5.Eu tenho os símbolos do aparelho selecionando a opção "usar este dispositivo para o desenvolvimento" no Organizador janela.Este telefone se recusa a ponto de interrupção no entanto.O meu antigo 3GS vai ponto de interrupção, o mesmo projeto Xcode, as mesmas configurações de...apenas diferentes dispositivo e executando o iOS 4.0.Eu acho que este é um Xcode bug em 3.2.5, desde que eu os símbolos.De ter tentado todas as soluções postadas aqui até agora, eu decidi que a solução para o meu problema é ir em frente e atualizar para o XCode 4.Talvez você não é possível depurar de forma eficaz, a menos que a sua base SDK é pelo menos tão alto quanto o de um sistema para depuração.Talvez isso é óbvio - alguém pode confirmar?

Editar:Vou atualizar quando eu posso confirmar que isso é verdade.

Eliminar a minha construção pasta resolveu o problema para mim.

Para isso, e também para o Xcode 6 e acima certifique-se de que o ponto de interrupção do estado de botão é ativado (seta azul-como o botão):

enter image description here

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

Eu encontrei o problema.De alguma forma, a "Mostrar Desmontagem quando a depuração"foi habilitado em minha XCode, que cria o problema.Quando eu desactivado, todos os meus depurador parado no meu código fonte.

Você pode encontrá-lo em: Product->Debug Workflow->Show Disassembly quando a depuração.

Você pode Ativar / Desativar pontos de interrupção no menu suspenso enter image description here

Se tudo mais falhar, em vez de um ponto de interrupção, você pode chamar a função a seguir:

void BreakPoint(void) {
    int i=1;
    #if !__OPTIMIZE__
    printf("Code is waiting; hit pause to see.\n");
    while(i);
    #endif
}

Para continuar, defina manualmente i do zero, em seguida, pressione o botão continuar.

Aconteceu a mesma coisa comigo no XCode 6.3.1.Eu consegui consertar:

  • Vai Ver->Navegadores->Mostrar Depuração Navegadores
  • Botão direito do mouse no projecto de raiz -> Mover pontos de interrupção (Se estiver selecionada a opção do Usuário)
  • (Eu também Selecionada a opção compartilhar pontos de interrupção, mesmo que eu não tenho certeza se o que necessário).

Depois de fazer essa mudança que eu defini o Mover pontos de interrupção opções de volta para o projeto, e desmarcar a Compartilhar pontos de interrupção opção, e ainda funciona.

Eu não sei exatamente por que, mas essa minha pontos de interrupção de volta.

Eu tentei todos os procedimentos descritos acima, mas para mim apenas desativar os pontos de interrupção de depuração de uma vez e, em seguida, ativá-los trabalhou.

Esta poderia ser uma das razões possíveis para isso acontecer....ir para Produto>Esquema>Editar esquema de>..Em Executar>info>Executável verificação de Depuração "executável".

Ao definir o ponto de interrupção, clique com botão direito e você deve obter várias opções sobre como o ponto de interrupção é processado (log vars e continuar, parar a execução, etc.)

Também certifique-se de que a "Carga de Símbolos preguiçosamente" não está seleccionada na caixa de depuração preferências.

(Aplica-se a Xcode 3.1, não tenho certeza sobre o passado/futuro versões)

Também certifique-se de que a AppStore a distribuição do aplicativo não é instalado no dispositivo.

Outra coisa a verificar é que se você tiver um "Direitos" arquivo plist para o seu modo de depuração (possivelmente porque você está fazendo coisas com o Chaveiro), certifique-se de que o arquivo plist tem o "get-tarefa-permitir" = SIM de linha.Sem ele, a depuração e o registro será interrompida.

Parece ser de 3 estados para os pontos de interrupção no Xcode.Se você clicar sobre eles irá percorrer as diferentes definições.O azul escuro é ativado, cinza está desativado e eu vi um azul pálido, às vezes, que me pedia para clicar sobre o ponto de interrupção novamente para fazê-lo ir para a cor azul escuro.

Outros do que isso certifique-se de que você está iniciando-o com o comando debug não o comando executar.Você pode fazer isso por bater option + command + return, ou o Ir (depuração) a opção a partir do menu executar.

Eu tenho Xcode 3.2.3 SDK 4.1 pontos de interrupção irá falhar aleatoriamente.Eu tenho encontrado, se você limpar a compilação e use o comando touch em construir eles trabalham de novo.

Aqui está um obscuro que eu tenho que correr para:se você estiver trabalhando em uma biblioteca compartilhada (ou plugin), os pontos de interrupção irá amarelo no arranque, o que pode causar-lhe para martelar o teclado na sua frustração e matar o processo de depuração.Bem, não faça isso!Os símbolos não ficar carregado até que o aplicativo carrega a biblioteca, no ponto em que os pontos de interrupção será válido.Eu tive esse problema com um plugin para o navegador...BPs foram desativados até que eu navegou para uma página que instanciado meu plugin.

Eu estava enfrentando o mesmo problema, quando eu queria depurar um web plug-in, onde o executável personalizado foi Safari 5.1.Ele estava funcionando bem até atualizei meu Safari 5.1 a partir de 4.0.5.Uma vez eu instalei o Safari 4.0.5 novamente, todos os pontos de interrupção começou a trabalhar, sem modificar qualquer Xcode definição.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top