Trepan-Debuggers / Trepan-Debuggers/python3-trepan

Problems with conditional breakpoints defined with "break {...} if {condition}" command.

Aperta
#13 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
176
Fork
17
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Hi,

I have been testing conditional breakpoints, but I have found some problems applying the condition directly when defining the breakpoints:

Python script used as example:

import sys
def main(arguments):
    for i in range(10):
        print(i)
        print("Test")

if __name__ == '__main__':
    main(sys.argv)

Defining condition in break-point creation:

trepan3k --highlight=plain --different test.py 
(/tmp/python_example/test.py:1): <module>
-> 1 import sys
(trepan3k) break 4 if i==5
Breakpoint 1 set at line 4 of file /tmp/python_example/test.py
(trepan3k) break 5 if i==3
Breakpoint 2 set at line 5 of file /tmp/python_example/test.py
(trepan3k) info break
Num Type          Disp Enb    Where
-----------------------------------
1   breakpoint    keep y   at /tmp/python_example/test.py:4
	stop only if if i==5
2   breakpoint    keep y   at /tmp/python_example/test.py:5
	stop only if if i==3
(trepan3k) continue
(/tmp/python_example/test.py:4 @19): main
xx 4         print(i)

When printing breakpoints information, I have seen that 'if' word appears two times in condition definition information (stop only if if ...).

Defining condition after break-point creation:

trepan3k --highlight=plain --different test.py 
(/tmp/python_example/test.py:1): <module>
-> 1 import sys
(trepan3k) break 4
Breakpoint 1 set at line 4 of file /tmp/python_example/test.py
(trepan3k) condition 1 i==5
(trepan3k) break 5
Breakpoint 2 set at line 5 of file /tmp/python_example/test.py
(trepan3k) condition 2 i==3
(trepan3k) info break
Num Type          Disp Enb    Where
-----------------------------------
1   breakpoint    keep y   at /tmp/python_example/test.py:4
	stop only if i==5
2   breakpoint    keep y   at /tmp/python_example/test.py:5
	stop only if i==3
(trepan3k) continue
0
Test
1
Test
2
Test
3
(/tmp/python_example/test.py:5 @29): main
xx 5         print("Test")
(trepan3k) eval i
3

I hope that this information can be helpful.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Reproduce the issue with the shown test.py script and the break 4 if i==5 command, then compare it with setting the condition afterward using condition. Trace the breakpoint command parsing and reporting path; done means inline conditions are displayed without a duplicated if and behave like conditions set afterward.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
devtools
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.