summaryrefslogtreecommitdiff
path: root/lib/debugger
Commit message (Collapse)AuthorAgeFilesLines
* EXTERNAL APPS COMPATDan Gudmundsson2020-12-212-2/+0
|
* Implement EEP-54 (extended error information)Björn Gustavsson2020-12-024-12/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is the reference implementation for EEP-54, which proposes a mechanism for providing more informational messages than simply "bad argument" when a call to a BIF fails. Here is an example: 1> element(a, b). ** exception error: bad argument in function element/2 called as element(a,b) *** argument 1: not an integer *** argument 2: not a tuple All the details are found in EEP-54, but here are the main points: * An extension of the format of the call-stack back trace (**stacktrace**) format to indicate that there exists extended error information for that call, and a convention for how extended error information can be provided. * A new `erlang:error/3` BIF to allow libraries and applications to raise an exception with extended error information. * New functions `erl_error:format_exception/3` and `erl_error:format_exception/4` to allow libraries and application to format stacktraces in the same style as the shell. This implementation of EEP-54 implements extended error information for all C-implemented BIFs in the `erlang` and `ets` modules.
* Fix typoHenrik Lagebrand2020-11-191-1/+1
|
* Prepare releaseErlang/OTP2020-05-112-1/+38
|
* Revert "Prepare release"Henrik Nord2020-04-222-38/+1
| | | | This reverts commit eee1f3aba92b5a741eabfa1cb6eca0632562777a.
* Prepare releaseErlang/OTP2020-04-222-1/+38
|
* Fix crash in string printingDan Gudmundsson2020-03-271-1/+4
| | | | Fix to_string/1 to handle all kind of lists.
* otp: Convert all <seealso> to more specific variantsLukas Larsson2020-03-274-38/+38
| | | | | | | | | | | | We add `seemfa`, `seeerl`, `seetype`, `seeapp`, `seecom`, `seecref` , `seefile` and `seeguide` in order to make it easier to reason about what each link points to without examining the target. This information will then be embedded in the EEP-48 chunks for usage by other tools. The tool used can be found here: https://gist.github.com/garazdawi/68527d92ae5b37c8f129bfbdfffdfa68
* Revert "Prepare release"Henrik Nord2020-03-252-38/+1
| | | | This reverts commit 63638d668efbeb4539ba301328cabbc2636fb154.
* Prepare releaseErlang/OTP2020-03-242-1/+38
|
* Revert "Prepare release"Henrik Nord2020-02-272-38/+1
| | | | This reverts commit 50e614e7d5fee9e3bfe8a58e7f390c6ea6caf271.
* Prepare releaseErlang/OTP2020-02-262-1/+38
|
* otp: Refactor doc make system and introduce EEP-48Lukas Larsson2020-02-249-82/+16
|
* Don't keep stacktraces foreverBjörn Gustavsson2020-02-215-74/+41
| | | | | | | | | | | | | | | | | The `erlang:get_stacktrace/0` BIF retrieves the stacktrace from the previous error in the process. The problem is that the very existence of `erlang:get_stacktrace/0` means that the stacktrace and potentially function arguments must be kept indefinitely. Therefore, in OTP 21, the `erlang:get_stacktrace/0` BIF was deprecated and the syntax of try/catch extended to allow matching out the stacktrace directly. This commit changes `erlang:get_stacktrace/0` for OTP 23 to always return an empty list (`[]`) and eliminates the need to keep the stacktrace forever. `erlang:get_stacktrace/0` is scheduled for removal in OTP 24.
* Add expression support in erl_eval and debuggerBjörn Gustavsson2020-02-065-10/+337
|
* Merge branch 'maint'Henrik Nord2019-12-102-1/+17
|\ | | | | | | | | | | | | | | | | * maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION
| * Prepare releaseErlang/OTP2019-12-062-1/+17
| |
* | Merge branch 'maint'Hans Bolinder2019-10-183-9/+8
|\ \ | |/ | | | | | | * maint: debugger: Print Unicode atoms consistently
| * debugger: Print Unicode atoms consistentlyHans Bolinder2019-10-163-9/+8
| | | | | | | | | | Use "~tlp" instead of "~lp". PR 1743 made it possible to have "l" and "p" together.
* | Merge branch 'maint'Björn Gustavsson2019-10-021-1/+1
|\ \ | |/ | | | | | | | | | | | | * maint: map_SUITE: Avoid skipping badmap17/1 in map_no_opt_SUITE compiler tests: Avoid skipping slow tests cases in cloned modules stdlib_SUITE: Eliminate -export_all() directive beam_lib_SUITE, debugger_SUITE: Don't skip test of encrypted debug info
| * beam_lib_SUITE, debugger_SUITE: Don't skip test of encrypted debug infoBjörn Gustavsson2019-09-251-1/+1
| | | | | | | | Don't call the removed function crypto:info/0.
* | Add 'make dialyzer' target to top and appsLukas Larsson2019-06-261-0/+2
| |
* | Add "make test" command for root and application directoriesKjell Winblad2019-06-261-0/+2
|/ | | | The added make target is described in HOWTO/TESTING.md.
* Prepare releaseErlang/OTP2019-05-102-1/+18
|
* Revert "Prepare release"Rickard Green2019-04-242-18/+1
| | | | This reverts commit 425889ba69b69a9b6fb14bfbef121d51b78e853a.
* Prepare releaseErlang/OTP2019-04-232-1/+18
|
* Revert "Prepare release"Henrik Nord2019-03-262-18/+1
| | | | This reverts commit 0118046f9bda8dcf3594184fa439b79267db8017.
* Prepare releaseErlang/OTP2019-03-252-1/+18
|
* Merge 'rickard/make-fixes-21/OTP-15551' into 'rickard/make-fixes-22/OTP-15551'Rickard Green2019-03-041-2/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rickard/make-fixes-21/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
| * Merge 'rickard/make-fixes-20/OTP-15551' into 'rickard/make-fixes-21/OTP-15551'Rickard Green2019-03-041-2/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rickard/make-fixes-20/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
| | * Merge 'rickard/make-fixes-19/OTP-15551' into 'rickard/make-fixes-20/OTP-15551'Rickard Green2019-03-041-2/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rickard/make-fixes-19/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
| | | * Merge 'rickard/make-fixes-18/OTP-15551' into 'rickard/make-fixes-19/OTP-15551'Rickard Green2019-03-041-2/+1
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rickard/make-fixes-18/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
| | | | * Merge 'rickard/make-fixes-17/OTP-15551' into 'rickard/make-fixes-18/OTP-15551'Rickard Green2019-03-041-2/+1
| | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rickard/make-fixes-17/OTP-15551: Fix install phase in build system - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
| | | | | * Fix install phase in build systemRickard Green2019-03-041-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Install of (mainly) documentation caused rebuild and modification of the source tree even when the source previously had been built. Also otp_patch_apply modified the source tree when updating documentation. This messed up the installation if installation was performed by another user than the user that originally built the system which not is an uncommon scenario. - Some documentation was installed by copying files instead of installing the files which caused faulty access rights on files. - The documentation was not properly updated when applying a patch using otp_patch_apply.
* | | | | | Revert "Prepare release"Rickard Green2019-02-272-18/+1
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit df130102cdeca8d35fec95a0c926fd1cfec54eab.
* | | | | | Prepare releaseErlang/OTP2019-02-262-1/+18
| | | | | |
* | | | | | beam_ssa_type: Propagate the 'none' type from callsBjörn Gustavsson2019-02-111-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider this pseudo code: f(...) -> Val = case Expr of ... -> ... ; ... -> ... ; ... -> my_abort(something_went_wrong) end, %% Here follows code that uses Val. . . . my_abort(Reason) -> throw({error,Reason}). The first two clauses in the case will probably provide some information about the type of the variable `Var`, information that would be useful for optimizing the code that follows the case. However, the third clause would ruin everything. The call to `my_abort/1` could return anything, and thus `Val` could also have any type. 294d66a295f6 introduced module-level type analysis, which will in general keep track of the return type of a local function call. However, it does not improve the optimization for this specific function. When a function never returns, that is, when its type is `none`, it does not propagate the `none` type, but instead pretends that the return type is `any`. This commit extends the handling of functions that don't return to properly handle the `none` type. Any instructions that directly follows the function that does not return will be discarded, and the call will be rewritten to a tail-recursive call. For this specific example, it means that the type for `Val` deduced from the first two clauses will be retained and can be used for optimizing the code after the case.
* | | | | | Merge branch 'maint'Sverker Eriksson2018-12-133-70/+70
|\ \ \ \ \ \
| * | | | | | Add empty 'since' attribute for old modules and functionsSverker Eriksson2018-12-123-70/+70
| |/ / / / /
* | | | | | Merge branch 'maint'Henrik Nord2018-09-252-1/+16
|\ \ \ \ \ \ | |/ / / / /
| * | | | | Prepare releaseErlang/OTP2018-09-242-1/+16
| | | | | |
* | | | | | Change "can not" into "cannot"Raimo Niskanen2018-07-271-1/+1
|/ / / / / | | | | | | | | | | | | | | | | | | | | I did not find any legitimate use of "can not", however skipped changing e.g RFCs archived in the source tree.
* | | | | docs: make clean all XMLDIRLukas Larsson2018-07-131-0/+1
| | | | |
* | | | | Prepare releaseErlang/OTP2018-06-192-1/+16
| | | | |
* | | | | Update copyright yearHenrik Nord2018-06-1811-11/+11
| | | | |
* | | | | debugger: Use ~0pHans Bolinder2018-06-081-3/+3
| | | | |
* | | | | Revert "Prepare release"Henrik2018-05-292-16/+1
| | | | | | | | | | | | | | | | | | | | This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08.
* | | | | Prepare releaseErlang/OTP2018-05-252-1/+16
| | | | |
* | | | | Move extended parse functions in lib.erl to erl_eval.erlRichard Carlsson2018-05-042-2/+2
| | | | |
* | | | | Revert "Update release notes"Henrik2018-05-021-15/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit 202bb737e3deabfebee683266f4b7c42781eb521.