O ano de 2012 começou com algumas horas de profunda depuração por causa de dois (conhecido) incomoda muito chato. , con la globale (e famosa) omonima istanza $wpdb . A primeira, entre outras coisas bastante datada, presentes no núcleo de WordPress que se relaciona com o método de update() da classe wpdb , com o global (e popular) instância homónimo $wpdb . O defeito aparece quando você tenta atualizar um campo para NULL . Apesar de inúmeras queixas, a equipe de desenvolvimento do WordPress não parece encontrar solução para o problema chato. Na verdade, até à data, a única solução é escrever o SQL para a sua conta.
Artigos com a tag 'Debug'
Bachi início do ano: WordPress e WPML get_page_by_path update ()
Muito curto trecho: definir o arquivo de log no WordPress
si attivano i log a video prodotti da PHP, riempiendo lo schermo di Notice, Warning e quant'altro. Ao configurar o arquivo wp-config.php definir o define('WP_DEBUG', true); ativa log em vídeos produzidos pelo PHP, enchendo a tela de Aviso Aviso, e outros enfeites. Se as verificações para "voar" isso pode ser útil em situações de exercício não é recomendado, por razões óbvias. Felizmente, o WordPress permite-lhe "transmitir" como um arquivo de log, que por padrão é colocado em /wp-content/debug.log .
Muito curto truque: objetos de log JavaScript
Se você está a desenvolver em um ambiente onde é impossível utilizar as ferramentas de depuração como FireBug , como o simulador do iPhone da Apple no Xcode, ele pode se tornar frustrante encontrar problemas, incluindo um acesso incorreto a todas as propriedades de um objeto. Aqui, a utilização de obras alert() é fundamental!
Codificação de Diretrizes
Quando não está trabalhando sozinho para todos os desenvolvedores chega a hora de encontrar algumas orientações em escrever código. Protocolos e padrões que permitam "ler" e intervir com facilidade (mais facilmente) no código dos outros.
Quando estamos trabalhando em um projeto mais programadores, muitas vezes, de diferentes idiomas, é obrigatório para encontrar uma forma comum de escrita padrões de documentação interna e externa para o seu código. No meu trabalho eu estou normalmente interagem com:
- Objetivo-C, C / C + +
- PHP
- HTML
- Javascript
- Actionscript
- CSS
Como definir XCode usar o iPhone em vez do simulador
XCode: Dicas sobre Preferências de depuração
Usando as Preferências do Xcode, você pode definir o comportamento da atmosfera durante a fase de depuração de um aplicativo para iPhone. As configurações padrão, na verdade, são muito desconfortáveis quando você tenta e tenta de novo um aplicativo, por exemplo, após o lançamento da nossa aplicação, você deve manualmente abrir a janela de console para ver a saída de vários NSLog() . Xcode também permite que as sessões anteriores de modo que tivemos de limpar para fora da janela com a mão. Felizmente, você pode resolver o problema, transformando as preferências:

Como mostrado na figura acima, basta selecionar um item no menu Iniciar na janela de depuração para decidir que abrem automaticamente no arranque da nossa appicazione (I definir Consoles e Debugger, mas você pode escolher os fatos melhor que você). À direita, em seguida, encontramos Auto Console Debug claro, assim você sempre começar com o Console limpo.
Como remover NSLog () da origem XCode
<a target="_blank" href="http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#//apple_ref/c/func/NSLog">NSLog()</a> uma função muito útil durante os estágios iniciais de um projeto para testar e depurar um aplicativo para o Apple iPhone ou, mais geralmente, no ambiente XCode. Sendo apenas uma função, assim como o outro, sua presença será sentida mesmo quando liberar (release) executável nosso. potrebbero influire sulle performance della nostra applicazione, soprattutto se abbiamo inserito NSLog() all'interno di loop. Por isso, torna-se necessário remover, de alguma forma, todas as linhas de NSLog() do nosso código, porque não é necessário, seja porque as chamadas para NSLog() poderia afetar o desempenho da nossa aplicação, principalmente se colocarmos NSLog() para 'loop interno.
Imediatamente descartar a solução para o "olhar" e "cancel" porque um dia não poderia ser utilizado novamente. Excluímos também a solução do "olhar" e "Comentários", desconfortável para a razão mesma de antes. Felizmente um ambiente limpo, simples e estão usando as condicionais de compilador corretas. O que fazemos na prática, e diz ao compilador para excluir - se houver uma condição específica - quando compilar as nossas linhas de origem que contêm NSLog() .
As compilações de directivas e instruções do compilador condicional, são um poderoso e generalizado. Aqueles que vem do desenvolvimento da ANSI-C certamente sabem muito bem e vai utilizzte em muitas situações. A peculiaridade dessas "instruções" reside no fato de, acima mencionado, para ser visto pelo compilador e não executável. Esta característica torna útil em muitos casos e podem resolver os problemas de outra maneira muito irritante.
Vamos ver um exemplo de código que, como previsto, você pode "apagar" por compilar pedaços de código, no nosso caso NSLog() :
1 2 3 4 5 6 | # Define ACTIVE_NSLOG 1 / / Se a constante é definida ACTIVE_NSLOG preencher / Bloco / de código entre # ifdef e # endif # Ifdef ACTIVE_NSLOG " ... bla bla" ) ; NSLog (@ "... blah blah"); # Endif |
). Declarações condicionais são parte do compilador da mesma família como #define , também, na verdade, são precedidos por um "quilo" ( # ). solo se ACTIVE_NSLOG è definito. No exemplo mostrado, nós definimos uma constante ACTIVE_NSLOG ; linhas subseqüentes do código diz ao compilador para "incluir" linha NSLog() somente se ACTIVE_NSLOG está definido. Se teve o cuidado, durante a escrita do nosso código, inserindo chamadas para NSLog() dentro do bloco #ifdef ... #endif per far sparire, alla prossima compilazione, tutti i nostri NSLog() . #ifdef ... #endif , basta apagar a definição da constante ACTIVE_NSLOG a desaparecer, a compilação seguinte, toda a nossa NSLog() .
A melhor e final
Vamos agora ver como definir o ambiente XCode para melhorar ainda mais o que fizemos aqui! Primeiro vamos escolher um nome constante que usamos em nossos projetos para excluir da compilação NSLog() . o quello che preferite. Você pode escolher o nome que quiser, de DEBUG para MIO_DEBUG ou o que você preferir. Abra o seu projeto, novo ou velho. Coloque tudo NSLog() dentro do bloco (ou blocos):
1 2 3 | # Ifdef MIO_DEBUG " ... bla bla" ) ; NSLog (@ "... blah blah"); # Endif |
Selecione o arquivo principal do seu projeto, clique direito e escolha o Get Info.

Isso abre uma janela com informações sobre o projeto:

Selecione a guia Build, verifique se você está em configuração de depuração (esta é a jóia), vá até a seção definida pelo usuário e adicionar, por meio do botão no canto inferior esquerdo, um novo campo chamado OTHER_CFLAGS . Neste assegnamoli o valor -DMIO_DEBUG=1 . A sintaxe é -D{mia define}=1 .
Este procedimento tem duas vantagens:
- Não devemos colocar o código
#define MIO_DEBUG 1, mas fazê-lo através das informações do projeto. Então, quando vamos para preencher a versão de lançamento (aquele sem oNSLog()) devemos nos lembrar de apagar a linha#define MIO_DEBUG 1 - A constante é definido em relação à configuração, no nosso caso de depuração. Em seguida, passando para a configuração de lançamento (release) estará ausente e as linhas constantes com
NSLog()não serão compilados
Conclusões
O procedimento acima pode ser útil em alguns casos moltidutine outros, com NSLog() , não têm nada a ver. Declarações condicionais pode ajudar o compilador em uma ampla variedade de contextos. Eles são freqüentemente usados por programadores para determinar o tipo de versão do sistema operacional, o alvo, a presença de processadores matemáticos, mantendo a mesma fonte "idêntico".
Para entender isso, como exemplo, podemos utilizzre nossa constante MIO_DEBUG também a intervir em outras áreas do código:
1 2 3 4 5 6 7 8 9 10 | / Debug / se ganhar o jogo / / Com uma pontuação de 100 em vez de 10000 :) # Ifdef MIO_DEBUG score == 100 ) if (score == 100) # Else score == 10000 ) if (score == 10000) # Endif { ; [HaiVinto auto]; } |
Para terminar, aqui estão alguns exemplos e suas variantes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | / / Em geral, há um # Se a expressão / / Se instrução semelhante à tradicional, portanto, com uma expressão plena / / Verificar se uma constante é definida # Ifdef constante / / Ver se ele não é uma constante definida # Ifndef constante / / Else # Else / Fecho / do bloco # Endif |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | / / Por exemplo ... # Define DEBUG 1 # Define MIA_ALTRA_COSTANTE 5 ... # Se DEBUG / / Preencha este # Else / / Caso contrário, preencha este outro # Endif # Se MIA_ALTRA_COSTANTE> 4 "..." ) ; NSLog (@ "..."); # Endif |
1 2 3 4 | # Ifndef INCLUDE_MIO_FILE # Define INCLUDE_MIO_FILE # Include "mio_file.h" # Endif |
Rastreamento Actionscript, Objective-C NSLog ()
, usata per il debug delle applicazioni. Assumir o cargo de ActionScript para Objective-C (onde você colocou o código e comparando a sintaxe do ActionScript e Objective-C) em Actionscript temos a conveniente função trace ( ) , usado para aplicações de depuração. Esta função gera uma saída para o ambiente de desenvolvimento consola Adobe Flash. É usado principalmente durante o desenvolvimento e teste de "filme" / aplicação. No C-Objetivo XCode / temos: NSLog ( ) . di Actionscript: A sintaxe desta função é muito semelhante ao trace ( ) em Actionscript:
1 | "Sono una linea di debug" ) ; NSLog (@ "Eu sou uma linha de depuração"); |
Em Actionscript temos:
1 | "Sono una linea di debug" ) ; trace ("Eu sou uma linha de depuração"); |
Além do uso de arroba (@), como você pode ver, são idênticos. As diferenças (e semelhanças) começam quando você deseja exibir valores de variáveis, por exemplo, em Actionscript temos:
1 2 3 | "Coordinata x:" + x + " coordinata y:" + y ) ; trace ("coordenada x:" + x + "coordenada y:" + y); / / Ou "Coordinate: " , x , y ) ; trace ("coordenadas", x, y); |
Em Objective-C, temos:
1 | "Coordinata x:%i coordinata y:%i" , x, y ) ; NSLog (@ "x-coordenadas: a y%% coordenadas i", x, y); |
che opera sull'Apple System Log. Nota:
NSLog()realmente chama a função mais genéricaNSLogv ( )que trabalha na Apple Registro do sistema. As funções são, de facto idênticos, alterando apenas os parâmetros de entrada.
o sprintf ( ) . Desenvolvedores de C vai encontrar muito familiarizado com a formatação de strings, como com printf ( ) ou sprintf ( ) . Para mais detalhes, ver especificadores de formato de String .
FireFox: gerenciamento de perfil
Mozilla Firefox permite que você gerencie vários perfis , que é útil para aqueles que, como eu, desenvolver sites e exige uma série de extensões dedicadas a depuração e análise de páginas da Web através do uso de perfis que você pode configurar diferentes FireFox:
Firefox salva suas informações pessoais, como favoritos, senhas e preferências em um grupo de arquivos chamado perfil localizado em um local diferente do que os arquivos do programa para o Firefox.
No Windows Vista ( veja aqui para outros sistemas operacionais) podem acessar o gerenciamento de perfis a partir do comando Esegui usando:
1 | firefox-ProfileManager |
Uma das vantagens na utilização de perfis é que você pode ter um Firefox para navegar, assim, sem todas as barras de ferramentas e extensões para depuração e FireFox a desenvolver, juntamente com FireBug e todas as outras ferramentas de desenvolvimento.
Firebug 1.1 Beta
Em Fireclipse a versão 1.1 beta está disponível no Firebug , incrível depurador de JavaScript e não apenas para FireFox . Entre as novidades desta versão beta para apontar o suporte para o Firefox 3, a interface função eval () e um editor externo.
Ser seguido com interesse, então todo o projeto Fireclipse , abra um projeto dedicado a ferramenta de Javascript!









Últimos Comentários
Gabriel : Olá, interessante artigo. Eu preciso de algo semelhante, mas com algumas mudanças. Em um ...
sebastian : grande parcela - muito obrigado!
Assunto : muito útil mesmo! Eu tentei isso e é exatamente o que eu precisava. Agora eu quero saber como faço para obter ...
vik : Com a ajuda estratégica!
Pimenta : Olá, eu não sei se você é um dos criadores do plugin WP Bannerize. Tenho visto um ...