L'année 2012 a commencé avec quelques heures de profonde débogage en raison de deux (connues) des bugs assez ennuyeux. , con la globale (e famosa) omonima istanza $wpdb . La première, entre autres choses, plutôt daté, présent dans le noyau de WordPress sur la méthode update() de classe wpdb , avec la planète (et célèbre) instance du même nom $wpdb . Le défaut apparaît lorsque vous essayez de mettre à jour un champ à NULL . Malgré les nombreuses plaintes, l'équipe de développement de WordPress ne semble pas trouver une solution au problème ennuyeux. En fait, à ce jour, la seule solution est d'écrire le code SQL pour votre compte.
Articles taggés avec 'Debug'
Bachi début de l'année: WordPress et WPML get_page_by_path mise à jour ()
Très court extrait: ensemble des fichiers journaux sur WordPress
si attivano i log a video prodotti da PHP, riempiendo lo schermo di Notice, Warning e quant'altro. En réglant le fichier wp-config.php définir le define('WP_DEBUG', true); journaux sont activés par les produits de PHP-écran, remplissant l'écran, Avis, Avertissement, et plus encore. Si les contrôles de "voler" ce qui peut être utile dans les situations d'exercice est fortement recommandé, pour des raisons évidentes. Heureusement, WordPress lui permet de «transmettre», ces journaux dans un fichier, qui par défaut est placé dans /wp-content/debug.log .
Très court astuce: log des objets JavaScript
Si vous êtes à développer dans un environnement où il est impossible d'utiliser les outils de débogage tels que FireBug , tels que le simulateur d'iPhone d'Apple dans Xcode, il peut devenir frustrant de trouver les problèmes, y compris un accès à toutes les propriétés incorrectes d'un objet. C'est ici que l'utilisation d'œuvres alert() est fondamentale!
Coding Guidelines
Lorsqu'ils ne sont plus travailler seul pour tous les développeurs vient le temps de trouver des indications dans l'écriture de code. Les protocoles et les normes qui permettent de «lire» facilement et intervenir (plus facilement) dans le code des autres.
Lorsque nous travaillons sur un projet plus programmeurs, souvent des langues différentes, vous devez trouver une forme commune de l'écriture, internes et externes des normes de documentation dans le code. Dans mon travail, je suis généralement d'interagir avec:
- Objet-C, C / C + +
- PHP
- HTML
- JavaScript
- Actionscript
- CSS
Comment définir XCode pour utiliser l'iPhone au lieu du simulateur
Xcode: Conseils de débogage sur Préférences
En utilisant les préférences de Xcode, vous pouvez définir le comportement de l'atmosphère pendant la phase de débogage d'une application iPhone. Les paramètres par défaut, en fait, sont très inconfortables lorsque vous essayez et essayez de nouveau une application, par exemple, après le lancement de notre application, vous devez ouvrir manuellement la fenêtre de console pour voir la sortie de divers NSLog() . Xcode permet également aux sessions précédentes, afin de nous forcer à nettoyer la fenêtre à la main. Heureusement, vous pouvez résoudre le problème en agissant sur les préférences:

Comme indiqué ci-dessus, il suffit de sélectionner un élément dans le menu de démarrage de décider quelle fenêtre de débogage à ouvrir automatiquement au démarrage de notre valide si (I & Debugger Console jeu mais vous pouvez choisir ceux que vous convient le mieux). Sur la droite, puis on trouve la console de débogage Auto Clear, vous commencez toujours avec une console propre.
Comment supprimer NSLog () de la source 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> une fonction utile durant les premiers stades d'un projet pour tester et déboguer une application pour iPhone d'Apple ou, plus généralement, dans l'environnement XCode. Etre juste une fonction, tout comme les autres, sa présence se fera sentir, même lors de la publication (release) de notre exécutable. potrebbero influire sulle performance della nostra applicazione, soprattutto se abbiamo inserito NSLog() all'interno di loop. Il devient alors nécessaire d'enlever, d'une certaine façon, toutes les lignes de NSLog() de notre code, car il n'est plus nécessaire, et parce que les appels à NSLog() pourrait affecter les performances de notre application, surtout si nous mettons NSLog() à la «boucle interne.
Immédiatement écarter la solution au "look" et "annuler" parce qu'un jour il pourrait être utilisé à nouveau. Nous excluons la solution du «look» et «commentaires», inconfortable pour la même raison que précédemment. Heureusement, une. Propre, simple, et en utilisant le compilateur correct conditionnelles Ce que nous ferons, dans la pratique, et dire au compilateur d'exclure - s'il ya une condition spécifique - lors de la compilation de nos lignes source qui contiennent NSLog() .
Les directives de compilation et des déclarations de compilation conditionnelle, sont un outil très puissant et très répandue. Ceux venant de l'élaboration de la norme ANSI-C connaît très bien et sera certainement utilizzte dans de nombreuses situations. La particularité de ces «instructions» réside dans le fait, mentionné plus haut, pour être vu par le compilateur et non exécutable. Cette caractéristique les rend utiles dans de nombreux cas et peut résoudre les problèmes par ailleurs très agaçant.
Voyons un exemple de code qui, comme prévu, vous pouvez "supprimer" de la compilation du partage de code, dans notre cas NSLog() :
1 2 3 4 5 6 | # Définir une ACTIVE_NSLOG / / Si la constante est définie ACTIVE_NSLOG remplissez / / Le bloc de code entre # ifdef et # endif # Ifdef ACTIVE_NSLOG " ... bla bla" ) ; NSLog (@ "... bla bla"); # Endif |
). Les instructions conditionnelles font partie de la compilation de la même famille que #define , également, en fait, sont précédés d'un "livre" ( # ). solo se ACTIVE_NSLOG è definito. Dans l'exemple montré que nous avons défini une constante ACTIVE_NSLOG ; lignes de code indique au compilateur de ligne "include" NSLog() que si ACTIVE_NSLOG est défini. Si nous avons pris soin, lors de la rédaction de notre code, de placer des appels à NSLog() dans le bloc #ifdef ... #endif per far sparire, alla prossima compilazione, tutti i nostri NSLog() . #ifdef ... #endif , il suffit de supprimer la définition de la constante ACTIVE_NSLOG à disparaître, la prochaine compilation, tous nos NSLog() .
Une meilleure et finale
Voyons maintenant comment configurer l'environnement XCode pour améliorer encore plus ce que nous avons fait ici! Tout d'abord nous choisissons un nom de constante que nous utilisons dans nos projets d'exclure de la compilation NSLog() . o quello che preferite. Vous pouvez choisir le nom que vous voulez, à partir DEBUG au MIO_DEBUG ou ce que vous préférez. Ouvrez votre projet, neuf ou ancien. Entrez toutes les NSLog() dans le bloc (ou bloc):
1 2 3 | # Ifdef MIO_DEBUG " ... bla bla" ) ; NSLog (@ "... bla bla"); # Endif |
Sélectionnez le fichier principal de votre projet, cliquez sur le bouton droit et choisissez l'option Get Info.

Ceci ouvre la fenêtre avec des informations sur le projet:

Sélectionnez l'onglet Générer, vérifiez que vous êtes dans la configuration Debug (ce qui est le joyau), allez à la section utilisateur et d'ajouter, via le bouton en bas à gauche, un nouveau champ appelé OTHER_CFLAGS . A cette valeur assegnamoli -DMIO_DEBUG=1 . La syntaxe est -D{mia define}=1 .
Cette procédure a deux avantages:
- Nous ne devons pas mettre dans le code
#define MIO_DEBUG 1, mais nous le faisons à travers les informations du projet. Alors, quand nous allons à remplir la version (l'un sans l'NSLog()) n'ont pas à se rappeler pour supprimer la ligne#define MIO_DEBUG 1 - La constante est définie par rapport à la configuration, dans notre cas de débogage. Ainsi, le passage à la version de configuration (communiqué) seront absents et les rangées constante avec
NSLog()ne sera pas compilé
Conclusions
La procédure ci-dessus peut être utile dans un cas moltidutine autre, avec NSLog() , n'ont rien à faire. Les instructions conditionnelles peuvent aider le compilateur dans un large éventail de contextes. Ils sont souvent utilisés par les programmeurs pour déterminer le type de système d'exploitation, la version, la cible, la présence de processeurs mathématiques, tout en conservant le même "même" source.
Pour comprendre, par exemple, nous pouvons utilizzre notre constante MIO_DEBUG également intervenir dans d'autres domaines du code:
1 2 3 4 5 6 7 8 9 10 | / / Debug s'ils gagnent le match / / Avec un score de 100 au lieu de 10 000:) # Ifdef MIO_DEBUG score == 100 ) if (score de == 100) # Else score == 10000 ) if (score de == 10000) # Endif { ; [HaiVinto auto]; } |
Pour finir, voici quelques exemples et des variantes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | / / En général, il ya # Si l'expression / / Si la déclaration semblable à la traditionnelle, donc avec une pleine expression / / Vérifier si une constante est définie # Ifdef constante / / Vérifier si ce n'est pas une constante définie # Ifndef constante / / Else # Else / / Fermer le bloc # Endif |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | / / Par exemple ... # Define DEBUG 1 5 # define MIA_ALTRA_COSTANTE ... # Si DEBUG / / Remplissez ce # Else / / Sinon remplissez cet autre # Endif # Si MIA_ALTRA_COSTANTE> 4 "..." ) ; NSLog (@ "..."); # Endif |
1 2 3 4 | # Ifndef INCLUDE_MIO_FILE # Définir INCLUDE_MIO_FILE # Include "mio_file.h" # Endif |
Trace Actionscript, Objective-C NSLog ()
, usata per il debug delle applicazioni. Reprenant le message à partir d'ActionScript à Objective-C (où l'on compare le code et la syntaxe ActionScript et Objective-C), nous avons la fonction pratique dans ActionScript trace ( ) , utilisée pour le débogage des applications. Cette fonction produit une console sur l'environnement de développement Adobe Flash. Il est principalement utilisé pour le débogage et le test de "film" / application. Dans Xcode / Objective-C, nous avons: NSLog ( ) . di Actionscript: La syntaxe de cette fonction est très similaire à la trace ( ) dans ActionScript:
1 | "Sono una linea di debug" ) ; NSLog (@ "Je suis le débogage d'une ligne"); |
Dans ActionScript, nous avons:
1 | "Sono una linea di debug" ) ; trace ("Je suis le débogage d'une ligne"); |
Outre l'utilisation de l'arobase (@), comme vous pouvez le voir, sont identiques. Les différences (et similitudes) démarre lorsque vous souhaitez afficher les valeurs des variables, par exemple en Actionscript, nous avons:
1 2 3 | "Coordinata x:" + x + " coordinata y:" + y ) ; trace ("coordonnée x:" + x + "coordonnée y:" + y); / / Ou "Coordinate: " , x , y ) ; trace ("Coordonnées", x, y); |
En Objective-C, nous avons:
1 | "Coordinata x:%i coordinata y:%i" , x, y ) ; NSLog (@ "abscisse: le% y% de coordonner i", x, y); |
che opera sull'Apple System Log. Note:
NSLog()appelle en fait la fonction plus génériqueNSLogv ( )qui fonctionne sur le journal du système mise. Les fonctions sont en fait identiques, en changeant seulement les paramètres d'entrée.
o sprintf ( ) . Les développeurs trouveront très familier avec le formatage de chaîne C, comme avec printf ( ) ou sprintf ( ) . Pour plus de détails, voir spécificateurs de format de chaîne .
FireFox: gestion des profils
Mozilla Firefox vous permet de gérer plusieurs profils , ce qui est utile à ceux qui, comme moi, développe des sites Web et nécessite une série d'extensions dédiées au débogage et d'analyse des pages Web via l'utilisation de profils que vous pouvez configurer différents paramètres FireFox:
Firefox enregistre vos informations personnelles comme les signets, mots de passe et vos préférences dans un fichier appelé groupe de profil situé dans une position différente par rapport aux fichiers du programme Firefox.
Sur Windows Vista ( voir ici pour les autres systèmes d'exploitation) peuvent accéder à la gestion du profil de la commande Esegui en utilisant:
1 | firefox-ProfileManager |
Un des avantages de l'utilisation des profils est que vous pouvez avoir un Firefox pour naviguer sans la barre d'outils puis toutes les extensions pour le débogage et FireFox pour développer, accompagné par Firebug et tous les autres outils de développement.
Firebug 1.1 beta
Sur Fireclipse version 1.1 beta disponible est de Firebug , un débogueur JavaScript incroyable et pas seulement pour FireFox . Parmi les nouveautés de cette bêta indique le support de Firefox 3, l'interface de la fonction eval () et un éditeur externe.
Pour suivre avec intérêt, puis l'ensemble du projet de Fireclipse , un projet ouvert dédié à outils JavaScript!









Derniers Commentaires
Simon : Il agace perturbés à nouveau et utiliser cet espace pour ces choses ... Mais ça ne fonctionne pas ...
Giovambattista Fazioli : @ Simon: ce pourrait être dû à la syntaxe que j'ai utilisé, spécialement pour PHP 5 +,...
Simon : J'ai essayé hier soir de mettre le tout dans functions.php, d'accord, les formes jquery, et les onglets jQueryUI eux ...
Giovambattista Fazioli : @ Simon: Je recommande le nettoyage d'entrer un code comme celui de ...
Simon : @ Giovambattista Fazioli: Je vous remercie pour votre patience, c'est tout clair ... maintenant je me sens maintenant, ...