Fjärrfelsökning med FDB via USB

AIR 2.6 (Android) AIR 3.3 (iOS)

Om du vill felsöka ett program via en USB-anslutning kan du paketera programmet med alternativet -listen i stället för alternativet -connect . När du anger alternativet -listen avlyssnas i miljön om det finns en anslutning från Flash Debugger (FDB) på TCP-porten 7936 när du startar programmet. Du kör sedan FDB med alternativet -p och FDB kommer att initiera anslutningen.

USB-felsökning för Android

För att Flash Debugger, som körs på den stationära datorn, ska kunna ansluta till AIR-miljön som körs på enheten eller emulatorn, måste du använda verktygen Android Debug Bridge (ADB, från Android SDK) eller iOS Debug Bridge (IDB, från AIR SDK) för att vidarebefordra enhetsporten till datorporten.

  1. Öppna ett terminalfönster eller en kommandotolk och gå till den katalog som innehåller källkoden för programmet.

  2. Kompilera programmet med amxmlc och aktivera felsökning:

    amxmlc -debug DebugExample.as
  3. Paketera programmet med rätt felsökningsmål (till exempel apk-debug ) och ange alternativet -listen :

    adt -package -target apk-debug -listen -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk DebugExample-app.xml DebugExample.swf
  4. Anslut enheten till felsökningsdatorn med en USB-kabel. (Du kan också använda den här proceduren för att felsöka ett program som körs på en emulator, och i så fall är en USB-anslutning inte nödvändig – eller ens möjlig).

  5. Installera programmet.

    Du kan använda ADT-kommandot -installApp :

    adt -installApp -platform android -package DebugExample.apk
  6. Vidarebefordra TCP-port 7936 från enheten eller emulatorn till den stationära datorn med Android-verktyget ADB:

    adb forward tcp:7936 tcp:7936
  7. Starta programmet på enheten.

  8. Kör FDB med alternativet -p i ett terminalfönster eller en kommandotolk:

    fdb -p 7936
  9. Skriv kommandot run i FDB-fönstret:

    Adobe fdb (Flash Player Debugger) [build 14159] 
                                        Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. 
                                        (fdb) run
  10. FDB-verktyget försöker ansluta till programmet.

  11. När fjärranslutningen har skapats kan du ange brytpunkter med FDB-kommandot break och sedan starta körningen med kommandot continue :

    (fdb) run 
                                        Player connected; session starting. 
                                        Set breakpoints and then type 'continue' to resume the session. 
                                        [SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after decompression 
                                        (fdb) break clickHandler 
                                        Breakpoint 1 at 0x5993: file DebugExample.as, line 14 
                                        (fdb) continue
Obs! Portnummer 7936 används som standard för USB-felsökning av både AIR-miljön och av FDB. Du kan ange olika portar för användning med ADT-portparametern -listen och FDB-portparametern -p. I så fall måste du använda verktyget Android Debug Bridge för att vidarebefordra det portnummer som angetts i ADT till den port som angetts i FDB: adb forward tcp:adt_listen_port# tcp:fdb_port#

USB-felsökning för iOS

För att Flash Debugger som körs på den stationära datorn ska kunna ansluta till AIR-miljön, som körs på enheten eller emulatorn, måste du använda verktyget iOS Debug Bridge (IDB, från AIR SDK) för att vidarebefordra enhetsporten till datorporten.

  1. Öppna ett terminalfönster eller en kommandotolk och gå till den katalog som innehåller källkoden för programmet.

  2. Kompilera programmet med amxmlc och aktivera felsökning:

    amxmlc -debug DebugExample.as
  3. Paketera programmet med rätt felsökningsmål (till exempel ipa-debug eller ipa-debug-interpreter ) och ange alternativet -listen :

    adt -package -target ipa-debug-interpreter -listen 16000 
                                        xyz.mobileprovision -storetype pkcs12 -keystore Certificates.p12  
                                        -storepass pass123 OutputFile.ipa InputFile-app.xml InputFile.swf
  4. Anslut enheten till felsökningsdatorn med en USB-kabel. (Du kan också använda den här proceduren för att felsöka ett program som körs på en emulator, och i så fall är en USB-anslutning inte nödvändig – eller ens möjlig).

  5. Installera och kör programmet på iOS-enheten. I AIR 3.4 och senare kan du använda adt ‑installApp för att installera programmet via USB.

  6. Bestäm enhetens referens (handle) genom att använda IDB-kommandot -devices (IDB finns i air_sdk_root /lib/aot/bin/iOSBin/idb ):

    ./idb -devices 
    
                                        List of attached devices 
                                        Handle    UUID 
                                            1     91770d8381d12644df91fbcee1c5bbdacb735500
    Obs! (AIR 3.4 och senare) Du kan använda adt ‑devices i stället för idb ‑devices för att bestämma enhetens referens (handle).
  7. Vidarebefordra en port på datorn till porten som är angiven i parametern adt -listen (i detta exempel 16000; standard är 7936) med IDB-verktyget och det enhets-ID som hittades i föregående steg:

    idb -forward 7936 16000 1

    I detta exempel är 7936 porten på datorn, 16000 är porten som den anslutna enheten avlyssnar och 1 är enhets-ID för den anslutna enheten.

  8. Kör FDB med alternativet -p i ett terminalfönster eller en kommandotolk:

    fdb -p 7936
  9. Skriv kommandot run i FDB-fönstret:

    Adobe fdb (Flash Player Debugger) [build 23201] 
                                        Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. 
                                        (fdb) run
  10. FDB-verktyget försöker ansluta till programmet.

  11. När fjärranslutningen har skapats kan du ange brytpunkter med FDB-kommandot break och sedan starta körningen med kommandot continue :

Obs! Portnummer 7936 används som standard för USB-felsökning av både AIR-miljön och av FDB. Du kan ange olika portar för användning med IDB-portparametern -listen och FDB-portparametern -p.