Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deselecting "Stop debugging on first line of files without breakpoints" ignores breakpoints in other files #22035

Open
mrclary opened this issue Apr 28, 2024 · 3 comments

Comments

@mrclary
Copy link
Contributor

mrclary commented Apr 28, 2024

Problem Description

Deselecting "Stop debugging on first line of files without breakpoints" ignores breakpoints in other files.

What steps reproduce the problem?

  1. Deselect "Stop debugging on first line of files without breakpoints".
  2. No breakpoints in first file, but add breakpoint in dependent file.
  3. Run debugger on first file.

What is the expected output? What do you see instead?

I expect the debugger to stop at the breakpoint in the dependent file, but the debugger does not stop.

If "Stop debugging on first line of files without breakpoints" is selected, then debugger stops on first line of first file. Continuing execution, the debugger stops at the breakpoint in the dependent file.

Versions

  • Spyder version: 6.0.0a5 (standalone)
  • Python version: 3.10.13 64-bit
  • Qt version: 5.15.8
  • PyQt5 version: 5.15.9
  • Operating System: macOS-14.4.1-x86_64-i386-64bit

Dependencies

# Mandatory:
atomicwrites >=1.2.0              :  1.4.1 (OK)
chardet >=2.0.0                   :  5.2.0 (OK)
cloudpickle >=0.5.0               :  3.0.0 (OK)
cookiecutter >=1.6.0              :  2.5.0 (OK)
diff_match_patch >=20181111       :  20230430 (OK)
intervaltree >=3.0.2              :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1  :  8.21.0 (OK)
jedi >=0.17.2,<0.20.0             :  0.19.1 (OK)
jellyfish >=0.7                   :  1.0.3 (OK)
jsonschema >=3.2.0                :  4.21.1 (OK)
keyring >=17.0.0                  :  24.3.0 (OK)
nbconvert >=4.0                   :  7.16.0 (OK)
numpydoc >=0.6.0                  :  1.6.0 (OK)
parso >=0.7.0,<0.9.0              :  0.8.3 (OK)
pexpect >=4.4.0                   :  4.9.0 (OK)
pickleshare >=0.4                 :  0.7.5 (OK)
psutil >=5.3                      :  5.9.8 (OK)
pygments >=2.0                    :  2.17.2 (OK)
pylint >=3.1,<4                   :  3.1.0 (OK)
pylint_venv >=3.0.2               :  3.0.3 (OK)
pyls_spyder >=0.4.0               :  0.4.0 (OK)
pylsp >=1.11.0,<1.12.0            :  1.11.0 (OK)
pylsp_black >=2.0.0,<3.0.0        :  2.0.0 (OK)
pyuca >=1.2                       :  1.2 (OK)
qdarkstyle >=3.2.0,<3.3.0         :  3.2.3 (OK)
qstylizer >=0.2.2                 :  0.2.2 (OK)
qtawesome >=1.3.1,<1.4.0          :  1.3.1 (OK)
qtconsole >=5.5.1,<5.6.0          :  5.5.1 (OK)
qtpy >=2.4.0                      :  2.4.1 (OK)
rtree >=0.9.7                     :  1.2.0 (OK)
setuptools >=49.6.0               :  69.0.3 (OK)
sphinx >=0.6.6                    :  7.2.6 (OK)
spyder_kernels >=3.0.0b5,<3.0.0b6 :  3.0.0b5 (OK)
superqt >=0.6.1,<1.0.0            :  0.6.1 (OK)
textdistance >=4.2.0              :  4.5.0 (OK)
three_merge >=0.1.1               :  0.1.1 (OK)
watchdog >=0.10.3                 :  4.0.0 (OK)
zmq >=24.0.0                      :  25.1.2 (OK)

# Optional:
cython >=0.21                     :  3.0.8 (OK)
matplotlib >=3.0.0                :  3.8.2 (OK)
numpy >=1.7                       :  1.26.4 (OK)
pandas >=1.1.1                    :  2.2.0 (OK)
scipy >=0.17.0                    :  1.12.0 (OK)
sympy >=0.7.3                     :  1.12 (OK)
@ccordoba12
Copy link
Member

The current mechanism is only able to search for breakpoints in the current file (i.e. the one where you start the debugging session), not any other file.

I really don't know how easy it could be to implement this, but in the meantime you can use code breakpoints to achieve what you want (i.e. introducing the breakpoint() statement where you want your code to stop).

@mrclary
Copy link
Contributor Author

mrclary commented May 2, 2024

The current mechanism is only able to search for breakpoints in the current file (i.e. the one where you start the debugging session), not any other file.

That seems like a strange limitation since the plugin lists all the breakpoints in all the files...

I really don't know how easy it could be to implement this, but in the meantime you can use code breakpoints to achieve what you want (i.e. introducing the breakpoint() statement where you want your code to stop).

Perhaps an additional solution may be to add !continue to "Run code while debugging"?

@ccordoba12
Copy link
Member

That seems like a strange limitation since the plugin lists all the breakpoints in all the files...

Agreed.

Perhaps an additional solution may be to add !continue to "Run code while debugging"?

Yep, combined with doing that if we detect there's any breakpoint set in Spyder.

So, I think at the time I added this functionality we didn't have the comms architecture in place, so it was only possible to detect if a breakpoint is set in the current file.

Would you like to take a look at this one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants