Italian uso del debug in B4A?

vecchiounno

Member
Licensed User
scusatemi, ma torno dopo 4 anni di assenza e non mi ricordo più nulla (o quasi)

mi umilio nel fare questa semplice domanda:

come si attiva (utilizza) il debug? ver. 11.0

(scusate ancora per la domanda)
 

vecchiounno

Member
Licensed User
...e questo lo avevo già fatto-

Ma quando eseguo (F5) il listato, come faccio a proseguire passo-passo?

mi ricordavo che si doveva mettere un breakpoint (pallino rosso) e poi proseguire con F8 (come in altri ambienti)
ma non succede nulla...

questo è il mio dilemma!
 

Star-Dust

Expert
Licensed User
Longtime User
Clicca col mouse a sinistra della riga in cui vuoi creare un breackpoint . Apparirà un puntino colorato.

Quando di ferma in quel punto puoi continuare con F5 (prosegue normalmente), F8 e F9 (prosegue passo passo)
 

vecchiounno

Member
Licensed User
non avrei scritto se non avessi già provato queste cose (ormai note e che ricordo bene)

faccio un piccolo riassunto:
1) 4 anni fa ho creato un app (fra le altre);
2) già a suo tempo pubblicata sul play store di google (quindi con tanto di keystore)
3) oggi riprendo b4a, ricarico il sorgente e intanto scopro che la chiave non la gestisce (ma questo lo vedrò in seguito);
4) uso quindi quella di debug e il bridge (app) sul cell per testare;
5) l'app funziona, non ci sono errori e si esegue sul cell.

Ora ciò che vorrei fare (come fatto 4 anni fa) è attivare il debug (e non release)
affinché il menu debug si attivi (in alto) e con un semplice breackpoint in un evento di click,
l'esecuzione si fermi appena "clicco" (dall'app sul cell connessa via bridge)
e quindi mi permetta di proseguire come già facevo 4 anni fa, con F8

oppure l'IDE è cambiata per quanto riguarda la gestione del debug?

insomma: dove sbaglio?!
 

Star-Dust

Expert
Licensed User
Longtime User
Se usi il bridge devi usare il comando #BridgeLogger: True

Vedi qui:

Non serve se connetti cin USB.
 

vecchiounno

Member
Licensed User
lo è:
perché c'è una msgboxasync e non posso sbagliare (proprio perché la sto testando)

credo che il mio problema sia la funzionalità del debug

4 anni fa, con Modalità Compilazione su debug e breakpoint già su Activity_Create (ovvero proprio l'inizio di tutto)
si fermava subito in attesa e poi proseguivo con F8 (come in qualsiasi altra IDE)
 

LucaMs

Expert
Licensed User
Longtime User
Magari il problema è proprio la msgboxasync. Se adesso metti il breakpoint sulla Create si ferma?
 

Star-Dust

Expert
Licensed User
Longtime User
Stai usando il Wait For con MsgBoxAsync?

Dovremmo vedere il codice. A noi il debug funziona correttamente
 

vecchiounno

Member
Licensed User
negativo

l'unica differenza tra usare debug e release è che in basso si attiva la finestra del debug
ma per il resto F8 o latro non funzionano
 

Star-Dust

Expert
Licensed User
Longtime User
Dovremmo vedere il codice. A noi il debug funziona correttamente
 

vecchiounno

Member
Licensed User
si perchè appena ricaricato il sorgente dopo 4 anni
ho trovato errori da modificare perchà metodi deprecati con l'ultima versione di b4a
così ho dovuto mettere ....async (mio malgrado)
 

vecchiounno

Member
Licensed User
Sub ok_id_Click
inputbox_id.Visible=False
tentativi=tentativi-1
If codice_id.Text.Length=4 Or codice_id.Text.Contains(",") Then 'con virgola per coordinatori e admin
Dim cellu As PhoneId
Dim imei As String=cellu.GetDeviceId
id_utente=codice_id.Text.ToUpperCase
Dim pagina As String=sito&"acv/acv_accessi.php"
If codice_id.Text.Contains(",") Then 'gestione ADMIN
get_id.Initialize("get0", Me)
get_id.Download2(pagina, Array As String("dati","0,"&id_utente))
Else
get_id.Initialize("get1", Me)
get_id.Download2(pagina, Array As String("dati","1,"&id_utente&","&imei))
End If
Else
If tentativi>1 Then
MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(ancora "&tentativi&" tentativi)","ERRORE")
Else If tentativi>0 Then
MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(ancora "&tentativi&" tentativo)","ERRORE")
Else
MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(era l'ultimo tentativo)","ERRORE")
StopService(testservice)
ExitApplication
End If
controllo_id
End If
End Sub
Sub annulla_id_Click
StopService(testservice)
ExitApplication
End Sub


un banalissimo evento
proprio il primo mess che appare all'utente appena avvia l'app
dopo 3 tentativi ti butta fuori
 

Star-Dust

Expert
Licensed User
Longtime User
B4X:
Sub ok_id_Click
inputbox_id.Visible=False
tentativi=tentativi-1
If codice_id.Text.Length=4 Or codice_id.Text.Contains(",") Then 'con virgola per coordinatori e admin
Dim cellu As PhoneId
Dim imei As String=cellu.GetDeviceId
id_utente=codice_id.Text.ToUpperCase
Dim pagina As String=sito&"acv/acv_accessi.php"
If codice_id.Text.Contains(",") Then 'gestione ADMIN
get_id.Initialize("get0", Me)
get_id.Download2(pagina, Array As String("dati","0,"&id_utente))
Else
get_id.Initialize("get1", Me)
get_id.Download2(pagina, Array As String("dati","1,"&id_utente&","&imei))
End If
Else
If tentativi>1 Then
MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(ancora "&tentativi&" tentativi)","ERRORE")
Else If tentativi>0 Then
MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(ancora "&tentativi&" tentativo)","ERRORE")
Else
MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(era l'ultimo tentativo)","ERRORE")
StopService(testservice)
ExitApplication
End If
controllo_id
End If
End Sub
Sub annulla_id_Click
StopService(testservice)
ExitApplication
End Sub
 

Star-Dust

Expert
Licensed User
Longtime User
Se non metti i Wait for il programma prosegue senza fare pause nei msgbox.

Il breackpoint dove lo metti?
 

vecchiounno

Member
Licensed User
ho provato ma non è questo il problema

B4X:
        Dim result As Int
        If tentativi>1 Then
            MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(ancora "&tentativi&" tentativi)","ERRORE")
            Wait For Msgbox_Result (result As Int)
            If result=DialogResponse.POSITIVE Then
               
            End If
        Else If tentativi>0 Then
            MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(ancora "&tentativi&" tentativo)","ERRORE")
            Wait For Msgbox_Result (result As Int)
            If result=DialogResponse.POSITIVE Then
               
            End If
        Else
            MsgboxAsync("Codice non valido..."&Chr(13)&Chr(10)&"(era l'ultimo tentativo)","ERRORE")
            Wait For Msgbox_Result (result As Int)
            If result=DialogResponse.POSITIVE Then
                StopService(testservice)
                ExitApplication
            End If
        End If
        controllo_id
    End If

riga 5,11, 17


si dovrebbe fermare anche alla activiy_create
 

Star-Dust

Expert
Licensed User
Longtime User
nel punto di interruzione appare il puntino rosso?

 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…