Artikel Tagged 'Debug'


Bachi Anfang des Jahres: WordPress und WPML get_page_by_path update ()

Das Jahr 2012 begann mit ein paar Stunden tief Debuggen, da von zwei (bekannte) Fehler sehr ärgerlich. , con la globale (e famosa) omonima istanza $wpdb . Die erste, unter anderem, nicht datiert, im Kern von WordPress über die Methode update() der Klasse wpdb , mit den globalen (und berühmt) etwa mit dem gleichen Namen $wpdb . Der Defekt wird angezeigt, wenn Sie ein Feld zu aktualisieren, um NULL . Trotz zahlreicher Beschwerden hat die WordPress Entwickler-Team nicht scheinen, um eine Lösung für das lästige Problem zu finden. In der Tat, bis heute ist die einzige Lösung für den SQL-Code für Ihr Konto zu schreiben.

Fortsetzung ...

Sehr kurze Auszug: stellen Sie die Protokolldateien auf WordPress

si attivano i log a video prodotti da PHP, riempiendo lo schermo di Notice, Warning e quant'altro. Durch die Einstellung der Datei wp-config.php definieren define('WP_DEBUG', true); Protokolle werden durch PHP-Screen-Produkte aktiviert, füllen den Bildschirm, Datenschutz, Warnung, und vieles mehr. Wenn Steuerungen für "fliegende" das kann in Situationen der Übung nützlich ist sehr zu empfehlen, aus offensichtlichen Gründen. Glücklicherweise erlaubt WordPress sie "übertragen" diese Protokolle, um eine Datei, die standardmäßig in gelegt wird /wp-content/debug.log .

Fortsetzung ...

Sehr kurze Trick: log JavaScript-Objekte

Wenn Sie in einer Umgebung, wo es unmöglich ist, die Debugging-Tools wie Nutzung entwickeln FireBug , wie dem Apple iPhone Simulator in Xcode, kann es frustrierend sein, um Probleme, darunter ein falscher Zugriff auf alle Eigenschaften eines Objekts zu finden. Hier ist, dass die Nutzung von Werken alert() von grundlegender Bedeutung ist!

Fortsetzung ...

Coding Guidelines

Wenn nicht mehr alleine arbeiten für alle Entwickler kommt um Beratung in das Schreiben von Code zu finden. Protokolle und Standards, dass es möglich zu "lesen" und einfach zu intervenieren (leichter) in den Code der anderen zu machen.
Als wir an einem Projekt mehr Programmierer arbeiten, die oft von verschiedenen Sprachen, müssen Sie eine gemeinsame Form des Schreibens, interne und externe Dokumentation Normen in den Code. In meiner Arbeit bin ich in der Regel mit Medikamenten:

  • Objet-C, C / C + +
  • PHP
  • HTML
  • JavaScript
  • Actionscript
  • CSS

Fortsetzung ...

Wie stellt man XCode auf das iPhone anstelle des Simulators

Screencast

Fortsetzung ...

Xcode: Debugging Tipps Preferences

Mit der Xcode-Einstellungen können Sie das Verhalten der Atmosphäre während des Debugging-Phase einer iPhone-Applikation eingestellt. Die Standardeinstellungen in der Tat sehr unangenehm, wenn Sie versuchen, versuchen Sie es erneut einen Antrag, zum Beispiel nach dem Start unserer Applikation, müssen Sie manuell öffnen Sie das Fenster für die Konsole auf den Ausgang verschiedener siehe NSLog() . Xcode lässt auch den vorherigen Sitzungen, um uns zu zwingen, das Fenster von Hand zu reinigen. Glücklicherweise können Sie das Problem, indem sie auf die Einstellungen zu lösen:

xcode-preferences

Wie oben gezeigt, wählen Sie einfach ein Element aus dem Menü auf Start, um zu entscheiden, welche Debug-Fenster automatisch geöffnet beim Start unserer gültig, wenn (I & Debugger Console eingestellt, aber Sie diejenigen, die am besten Sie wählen können). Auf der rechten Seite, dann finden wir Auto Clear Debug-Konsole, so dass Sie immer mit einem sauberen Konsole zu starten.

Fortsetzung ...

Wie NSLog () von der Quelle XCode löschen

<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> eine nützliche Funktion in den frühen Phasen eines Projekts zum Testen und Debuggen einer Anwendung für Apple iPhone oder ganz allgemein in die XCode-Umgebung. Da nur eine Funktion, genau wie die anderen, wird seine Anwesenheit auch zu spüren sein, wenn die Freigabe (Release) unserer ausführbar. potrebbero influire sulle performance della nostra applicazione, soprattutto se abbiamo inserito NSLog() all'interno di loop. Es wird dann notwendig, zu entfernen, in gewisser Weise alle Zeilen in NSLog() aus dem Code entfernen, weil sie nicht mehr benötigt wird, und weil Anrufe an NSLog() konnte die Leistungsfähigkeit unserer Anwendung auswirken, insbesondere wenn wir setzen NSLog() , um "inneren Schleife.

Unmittelbar auszuschließen Lösung für das "Look" und "Abbrechen", weil es eines Tages wieder verwendet werden könnten. Wir schließen die Lösung der "Look" und "Kommentare", unbequem aus dem gleichen Grund wie zuvor. Zum Glück, eine saubere, einfache, und den richtigen Compiler conditionals. Was wir in der Praxis zu tun, und sagen, dass der Compiler auszuschließen - wenn es einen bestimmten Zustand - bei der Erstellung unserer Quelle Linien enthalten NSLog() .

Die Compiler-Direktiven und Compiler bedingte Anweisungen, sind ein sehr mächtiges und weit verbreitet. Diejenigen, die aus der Entwicklung der ANSI-C sehr gut kennt und wird definitiv in vielen Situationen utilizzte. Die Besonderheit dieser "Anleitung" liegt in der Tatsache, oben erwähnt, durch den Compiler zu sehen und nicht ausführbar. Diese Eigenschaft macht sie in vielen Fällen nützlich und kann Probleme lösen, sonst sehr ärgerlich.

Lassen Sie uns ein Beispiel-Code, der, wie vorhergesagt, Sie "Löschen" kann von der Erstellung von Code-Share, in unserem Fall sehen NSLog() :

1
2
3
4
5
6
# Define ACTIVE_NSLOG 1
/ / Wenn die Konstante definiert ist ACTIVE_NSLOG füllen
/ / Der Block von Code zwischen # ifdef und # endif
# Ifdef ACTIVE_NSLOG
" ... bla bla" ) ; NSLog (@ "... blah blah");
# Endif

). Bedingte Anweisungen sind Teil des Compilers von der gleichen Familie wie #define , auch in der Tat, werden durch ein "Pfund" (vorausgegangen # ). solo se ACTIVE_NSLOG è definito. In dem gezeigten Beispiel haben wir eine Konstante definiert ACTIVE_NSLOG ; nachfolgenden Zeilen Code weist den Compiler an "include" Zeile NSLog() nur dann, wenn ACTIVE_NSLOG definiert ist. Wenn wir kümmerten, während des Schreibens von unseren Code, um Anrufe zu NSLog() innerhalb des Blocks #ifdef ... #endif per far sparire, alla prossima compilazione, tutti i nostri NSLog() . #ifdef ... #endif , löschen Sie einfach die Definition der konstanten ACTIVE_NSLOG zu verschwinden, die nächste Compilation, alle unsere NSLog() .

Ein bestes und endgültiges

Lassen Sie uns nun sehen, wie die XCode-Umgebung eingerichtet, um noch mehr, was wir hier getan haben, zu verbessern! Zuerst wählen wir einen konstanten Namen, die wir in unseren Projekten zu verwenden, um aus der Kompilierung ausschließen NSLog() . o quello che preferite. Sie können wählen, den Namen, den Sie möchten, von DEBUG zu MIO_DEBUG oder was auch immer Sie bevorzugen. Öffnen Sie Ihr Projekt, neu oder alt. Geben Sie alle NSLog() innerhalb des Blocks (oder Block):

1
2
3
# Ifdef MIO_DEBUG
" ... bla bla" ) ; NSLog (@ "... blah blah");
# Endif

Wählen Sie die Haupt-Datei Ihres Projekts, klicken Sie die rechte Maustaste und wählen Sie das Get Info Element.

getinfo

Es öffnet sich das Fenster mit Informationen über das Projekt:

userdefine

Wählen Sie das Register Erstellen, überprüfen Sie, ob Sie in der Debug-Konfiguration (das ist die Perle) sind, um die User-Defined Abschnitt und fügen über den Button unten links, ein neues Feld namens OTHER_CFLAGS . Bei diesem Wert assegnamoli -DMIO_DEBUG=1 . Die Syntax ist -D{mia define}=1 .

Dieses Verfahren hat zwei Vorteile:

  1. Wir dürfen nicht in den Code eingefügt, #define MIO_DEBUG 1 , aber wir tun es durch das Projekt Informationen. Also, wenn wir füllen die Release-Version (die man ohne unterwegs NSLog() zu tun) nicht daran denken, die Zeile zu löschen #define MIO_DEBUG 1
  2. Die Konstante ist in Bezug auf die Konfiguration, in unserem Fall Debug definiert. So wird die Umstellung auf Konfiguration (release) Release fehlen und die ständige Zeilen mit NSLog() wird nicht kompiliert werden

Schlussfolgerungen

Das oben beschriebene Verfahren kann in einer moltidutine anderen Fällen nützlich sein, mit NSLog() , nichts zu tun haben. Bedingte Anweisungen helfen kann der Compiler in einer Vielzahl von Kontexten. Sie werden oft von Programmierern verwendet, um den Typ des Betriebssystems, die Version, das Ziel, die Präsenz der mathematischen Prozessoren, bestimmen unter Beibehaltung der gleichen "gleichen" Quelle.

Um zu verstehen, als Beispiel, können wir utilizzre unser ständiger MIO_DEBUG auch in anderen Bereichen des Codes zu intervenieren:

1
2
3
4
5
6
7
8
9
10
/ / Debug, wenn sie das Spiel zu gewinnen
/ / Mit einer Punktzahl von 100 statt 10000:)
# Ifdef MIO_DEBUG
score == 100 ) if (score == 100)
# Else
score == 10000 ) if (score == 10000)
# Endif
{
; [HaiVinto self];
}

Zum Abschluss, hier sind einige Beispiele und Varianten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/ / In der Regel gibt es
# Wenn der Ausdruck
/ / If-Anweisung ähnlich der traditionellen, so mit einem vollen Ausdruck

/ / Überprüfen, ob eine Konstante definiert ist
# Ifdef konstant

/ / Prüfen, ob es sich NICHT um eine definierte
# Ifndef konstant

/ / Else
# Else

/ / Schließen Sie den Baustein
# Endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ / Zum Beispiel ...
# Define DEBUG 1
5 # define MIA_ALTRA_COSTANTE

...
# Wenn DEBUG
/ / In diesem Fill
# Else
/ / Sonst füllen Sie dieses anderen
# Endif

# Wenn MIA_ALTRA_COSTANTE> 4
"..." ) ; NSLog (@ "...");
# Endif
1
2
3
4
# Ifndef INCLUDE_MIO_FILE
# Define INCLUDE_MIO_FILE
# Include "mio_file.h"
# Endif

Fortsetzung ...

Trace Actionscript, Objective-C NSLog ()

, usata per il debug delle applicazioni. Anknüpfend an den Beitrag von Actionscript zu Objective-C (wo Sie vergleichen den Code und Syntax ActionScript und Objective-C), haben wir die praktische Funktion in ActionScript trace ( ) , für das Debuggen von Anwendungen verwendet. Diese Funktion gibt eine Konsole auf dem Adobe Flash-Entwicklungsumgebung. Es ist vor allem für das Debuggen und Testen von "movie" / Anwendung verwendet wird. In XCode / Objective-C haben wir: NSLog ( ) . di Actionscript: Die Syntax dieser Funktion ist sehr ähnlich wie die trace ( ) in Actionscript:

1
"Sono una linea di debug" ) ; NSLog (@ "Ich bin Debuggen einer Linie");

In Actionscript haben wir:

1
"Sono una linea di debug" ) ; trace ("Ich bin Debuggen einer Linie");

Abgesehen von der Verwendung des Zeichens (@), wie Sie sehen können, sind identisch. Die Unterschiede (und Gemeinsamkeiten) zu starten, wenn Sie die Werte der Variablen, zum Beispiel in Actionscript haben wir anzeigen möchten:

1
2
3
"Coordinata x:" + x + " coordinata y:" + y ) ; trace ("x-Koordinate:" + x + "y-Koordinate:" + y);
/ / Oder
"Coordinate: " , x , y ) ; trace ("Koordinaten", x, y);

In Objective-C haben wir:

1
"Coordinata x:%i coordinata y:%i" , x, y ) ; NSLog (@ "x-Koordinate: die y-Koordinate%% i", x, y);

che opera sull'Apple System Log. Hinweis: NSLog() , ruft die mehr generische Funktion NSLogv ( ) , die auf die Umsetzung System Log betreibt. Die Funktionen sind in der Tat identisch, ändern nur die Input-Parameter.

o sprintf ( ) . Die Entwickler finden sehr vertraut mit den C-String-Formatierung, wie bei printf ( ) oder sprintf ( ) . Weitere Informationen finden Sie String Formatbezeichner .

Fortsetzung ...

FireFox: Profil-Management

Mozilla Firefox ermöglicht Ihnen das Verwalten mehrerer Profile , die nützlich für diejenigen, die, wie ich, entwickelt Websites und erfordert eine Reihe von Erweiterungen gewidmet Debugging und Analyse von Web-Seiten über die Verwendung von Profilen können Sie verschiedene Einstellungen konfigurieren FireFox:

Firefox speichert Ihre persönlichen Daten wie Lesezeichen, Passwörter und Einstellungen in einer Datei namens profile Gruppe in eine andere Position im Vergleich zu den Firefox-Programm-Dateien befinden.

Unter Windows Vista ( siehe hier für andere Betriebssysteme) können auf das Profil-Management von der Kommandozeile aus Esegui mit:

1
firefox-ProfileManager

Profile Management

Einer der Vorteile bei der Verwendung von Profilen ist, dass man ein FireFox, ohne die Toolbar durchsuchen und alle Erweiterungen für Debugging und FireFox zu entwickeln, begleitet von FireBug und alle anderen Entwicklungs-Tools.

Fortsetzung ...

Firebug 1.1 beta

Firebug

Auf Fireclipse Release 1.1 ist verfügbar Beta-Version von Firebug , JavaScript Debugger erstaunlich und nicht nur für FireFox . Zu den Neuheiten dieser Beta gibt die Unterstützung für Firefox 3, die Funktion eval ()-Schnittstelle und einem externen Editor.

Zu folgen, mit Interesse, dann das gesamte Projekt Fireclipse , ein offenes Projekt, um JavaScript-Tools gewidmet!

Fortsetzung ...



Stoppen SOPA