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

Debugger crashes when stepping into not interpreted code #455

Closed
lukaszsamson opened this issue Jan 8, 2021 · 0 comments · Fixed by #457
Closed

Debugger crashes when stepping into not interpreted code #455

lukaszsamson opened this issue Jan 8, 2021 · 0 comments · Fixed by #457
Labels
bug Something isn't working

Comments

@lukaszsamson
Copy link
Collaborator

Environment

  • Elixir & Erlang versions (elixir --version): 1.11.3, otp 23.2.1
  • Editor Plugin/LSP Client name: 0.6.2

Description

When step_into, step_out_of or next is called and results in stepping out of interpreted code the debugger crashes with MatchError inside :int module functions

@lukaszsamson lukaszsamson added bug Something isn't working work in progress labels Jan 8, 2021
lukaszsamson added a commit that referenced this issue Jan 10, 2021
lukaszsamson added a commit that referenced this issue Jan 10, 2021
axelson pushed a commit that referenced this issue Jan 14, 2021
* remove legacy io_request handlers

we don't support OTP < R15B

* rescue MatchError in :int calls

Fixes #455

* make output device better conform to erlang I/O protocol

see https://erlang.org/doc/apps/stdlib/io_protocol.html for details

* return WireProtocol.send error to the caller

no need to IO.warn if write fails

* we are redirection stderr to stdout, use stdout as underlying device

* inspect error

* monitor debugged processes

add test for mix task exit
Fixes #454

* avoid debugger crashes when handling requests for no longer existing thread, frame and variable ids

Fixes #452

* add test

* forbid changes of underlying device opts

* refactor and add tests coverage to invalid requests

* Map.pop! is available since elixir 1.10

* run formatter
lukaszsamson added a commit that referenced this issue Feb 19, 2022
lukaszsamson added a commit that referenced this issue Feb 19, 2022
)

* remove not supported SetExceptionBreakpoints request handler

Clients should only call this request if the capability ‘exceptionBreakpointFilters’ returns one or more filters.
No way to implement it via :int module

* implement function breakpoints

* test erlang breakpoints

* fix small memory leak when unsetting last breakpoint in file

* add more breakpoint tests

* make tests more synchronous

* add function breakpoints tests

* interpret modules

* extract and test mfa parsing

* run formatter

* Update readme

* cleanup

* extract and test erlang binding processing

fix some isses when var is usend more than 10 times
add explicite ordering by variable instance
discard underscored variables

* breakpoint conditions support added

do not warn when setting already set breakpoint

* update readme

* log when expression crashes

* add support for conditional function breakpoints

* update readme

* add support for breakpoint hit condition

* readme updated

* implement log message

* readme updated

* add support for terminateThreads request

* add support for pause

* make continue, next, stepIn, stepout requests conform to DAP 1.51

Fixes #669
reworks fixes for #455

* cleanup :int workaround

* tests wip

* format
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant