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

beam_debug_info: Emit a proper entry debug_line for funs #9602

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

bjorng
Copy link
Contributor

@bjorng bjorng commented Mar 18, 2025

No description provided.

@bjorng bjorng added team:VM Assigned to OTP team VM fix labels Mar 18, 2025
@bjorng bjorng self-assigned this Mar 18, 2025
Copy link
Contributor

github-actions bot commented Mar 18, 2025

CT Test Results

    2 files    333 suites   9m 32s ⏱️
  847 tests   845 ✅ 2 💤 0 ❌
5 602 runs  5 600 ✅ 2 💤 0 ❌

Results for commit 24b0a3b.

♻️ This comment has been updated with latest results.

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

// Erlang/OTP Github Action Bot

facebook-github-bot pushed a commit to WhatsApp/edb that referenced this pull request Mar 18, 2025
Summary:
# Context
We import a new custom toolchain. This version was made by using a newer version of OTP master that contains merged PRs needed for edb, plus fixing rebasing issues, plus some cherry-picked fixes

# Detailed contents

All commits [here](https://github.com/jcpetruzza/otp/commits/edb-2025-03-12/).

- We use as base [#8670](erlang/otp#8670), the merged PR with the last version of the pausing proc timer logic.
    - The main difference with the version we were using so far is that timers are always paused/resumed, instead of being conditional on an option
- This base includes [#9334](erlang/otp#9334), the merged version of the compiler changes to support `+beam_debug_info`
    - The main difference with the version we were using is that a special `debug_line` is emitted at the beginning of every function, before clause selection, to support "breakpoints on functions" (which still needs support in the VM)
- On top of that, we rebase the commits implementing erl_debugger and the breakpoint logic ([commits](https://github.com/jcpetruzza/otp/commits/5ac8a4f43ddeb0b9a16ce578332de10dfbd34b9b)). Changes:
    - From the jit, the template function to call into runtime functions, `runtime_call()` changed its template arguments, so the usages had to be fixed
    - When loading modules, we discard the very first ocurrence of `debug_info` per function, to account for the change described above,
- On top of this, cherry-picked two bugfix PRs that haven't been merged yet:
    - [#9584](erlang/otp#9584) to fix build issues
    - [#9602](erlang/otp#9602) to fix a corner-case where the initial `debug_line` for a function were not being emitted (discovered by the edb test suite)

# Changes to edb
  - Fix the calls to `erlang:suspend_process()` and `erlang:resume_process()`, that no longer expect an extra arg
  - Fixed a test checking the registers returned; that broke as the compiler is now allocating fewer Y registers on the function used
  - Fixed a test that was making assumptions about the line number of code in the `peer` module

Reviewed By: RobinMorisset

Differential Revision: D71400292

fbshipit-source-id: daa576802d19e950b13be5919a00a8b3e70aefe9
@bjorng bjorng requested a review from jhogberg March 19, 2025 06:01
@bjorng bjorng added the testing currently being tested, tag is used by OTP internal CI label Mar 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix team:VM Assigned to OTP team VM testing currently being tested, tag is used by OTP internal CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants