Trepan-Debuggers / Trepan-Debuggers/python3-trepan
Problems with conditional breakpoints defined with "break {...} if {condition}" command.
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 176
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
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.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100