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)
 

agraham

Expert
Licensed User
Longtime User
2021-10-16_120745.jpg
 

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
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)
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?

1634395218853.png
 
Top