aboutsummaryrefslogtreecommitdiffstats
path: root/lib/debugger
AgeCommit message (Collapse)Author
2013-01-15Merge branch 'dgud/debugger/unicode/OTP-10679'Dan Gudmundsson
* dgud/debugger/unicode/OTP-10679: debugger: View terms as unicode-strings debugger: Fix code viewing on wxWidgets-2.9 debugger: Remove bad gs:call debugger: Fix user evalution dependent of bindings in trace window
2013-01-15Merge branch 'dgud/wx/fix-wx-2.9-compat/OTP-10407'Dan Gudmundsson
* dgud/wx/fix-wx-2.9-compat/OTP-10407: (26 commits) wx: Fix comments wx: Workaround wx-2.9 bugs wx: Mac fixes wx: Fix demo and tests wx: Allow 64 bits compilation on mac, requires wxWidgets-2.9 appmon: Move runtime part to runtime_tools app reltool: fix wxWidgets-2.9 compability debugger: Fix 2.9 compat observer: Fix check for graphics contexts Observer: Fix distribution dialog observer: Fix font sizes wx: Fix the demo wx: Fix loading icons and cursors in Windows wx: Remove unnecessary casts wx: Fix changed getfunctions wx: Depricate wxCursor new functions wx: Fix int to enum wx: Include correct m4 file in 2.9 wx: Update examples so they work with both wxWidgets 2.8 and 2.9 wx: Modify tests so they work on wxWidgets-2.9 ...
2013-01-11debugger: View terms as unicode-stringsDan Gudmundsson
Changed the displayed variables to be printed with ~tp to show default all lists and utf-8 binaries as unicode strings. If the user want to see the content without unicode strings he can click on them to see the content as integers, if not it only contains latin1 because ~p converts that. There is currently no way to display it as lists with indentation, so I choose to keep it as it was.
2013-01-11debugger: Fix code viewing on wxWidgets-2.9Dan Gudmundsson
wxWidgets contains more code format options and if they are not set it looks really bad.
2013-01-11debugger: Remove bad gs:callDan Gudmundsson
A present non working gs call was left in the code
2013-01-10debugger: Fix user evalution dependent of bindings in trace windowDan Gudmundsson
Bindings in erl_eval is an orddict and must be sorted otherwise they are not found, depending on creation order
2013-01-09debugger: Remove support for packagesBjörn Gustavsson
2013-01-09debugger: Fix 2.9 compatDan Gudmundsson
wxTextCtrl:setFocus selects all input. wxListBox:insertItems() Asserts for a zero list, sigh..
2013-01-09Prepare OTP files for Unicode as default encodingHans Bolinder
2012-12-10Merge branch 'hm/debugger_settings_dialog'Henrik Nord
* hm/debugger_settings_dialog: Fix Debugger settings dialog due to changed behavior in wxFileDialog OTP-10621
2012-11-07Fix Debugger settings dialog due to changed behavior in wxFileDialogHåkan Mattsson
2012-08-31Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: lib/diameter/autoconf/vxworks/sed.general xcomp/README.md
2012-08-31Update copyright yearsBjörn-Egil Dahlberg
2012-08-17Remove support for tuple funsBjörn Gustavsson
Tuple funs were deprecated in R15B (in commit a4029940e309518f5500).
2012-06-08Merge branch 'lukas/otp/install_with_whitespace/OTP-10107' into maintLukas Larsson
* lukas/otp/install_with_whitespace/OTP-10107: Update to work with space in include path Update to work with whitespace in exec path
2012-06-05Update to work with whitespace in exec pathLukas Larsson
OTP-10106 OTP-10107
2012-05-10Remove workarounds for hybrid and shared heaps in test suitesBjörn Gustavsson
2012-04-01Prepare releaseOTP_R15B01Erlang/OTP
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-02-29[debugger] Fixed disappearing breakpointsDan Gudmundsson
Reported by Ricardo Catalinas Jiménez
2012-02-09Merge branch 'bjorn/deprecations/OTP-9907' into maintBjörn Gustavsson
* bjorn/deprecations/OTP-9907: Deprecate the Toolbar application Deprecate applications that have been superseded by observer Suppress deprecated warnings in all modules that call 'gs' Deprecate the gs application Mark doc_builder as removed (and not merely deprecated)
2012-02-08Suppress deprecated warnings in all modules that call 'gs'Björn Gustavsson
2012-02-06debugger tests: Increase time trap timeoutBjörn Gustavsson
Some bit syntax test cases take much longer time to complete when libraries are in native code, probably because of context switches between the eval_bits module and the debugger modules.
2011-12-12Prepare releaseErlang/OTP
2011-12-10Merge branch 'dgud/wx/behaviour-spec'Dan Gudmundsson
* dgud/wx/behaviour-spec: [wx] Add handle_cast to avoid behaviour warning [wx] Avoid missing wx_object behaviour warning [wx] Remove warnings Add an additional cast when casting buffer offsets, to remove warnings "cast to pointer from integer of different size" [wx] Add callback specs to wx_object
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-12-09[wx] Add handle_cast to avoid behaviour warningDan Gudmundsson
2011-11-22Revert "Update version numbers for pre-release of R15"Björn-Egil Dahlberg
This reverts commit e21ff9b0b69219ab3853be7e80813156113152b7.
2011-11-22Update version numbers for pre-release of R15OTP_R15ABjörn Gustavsson
2011-11-10Merge branch 'rj/fix-debugger-msgs'Henrik Nord
* rj/fix-debugger-msgs: Fix "OK" spelling in debugger messages and variables Fix debugger message with wx OTP-9699
2011-11-10Remove exec bit from: erl, hrl, xml, html, asn, gif, xpmRicardo Catalinas Jiménez
2011-11-09Fix "OK" spelling in debugger messages and variablesRicardo Catalinas Jiménez
Simple code refactor in the debugger: renames all the occurrences of "Ok" to "OK" in the code, variable names and strings. This improves the consistency of the code and follows the GTK UI where "OK" is always used.
2011-11-09Fix debugger message with wxRicardo Catalinas Jiménez
Add missing spaces when using wx UI. The gs UI didn't need them. Change the exclamation of the message by a dot, more formal style for a UI message.
2011-11-07EEP-23: Allow variables in fun M:F/ABjörn Gustavsson
Currently, the external fun syntax "fun M:F/A" only supports literals. That is, "fun lists:reverse/1" is allowed but not "fun M:F/A". In many real-life situations, some or all of M, F, A are not known until run-time, and one is forced to either use the undocumented erlang:make_fun/3 BIF or to use a "tuple fun" (which is deprecated). EEP-23 suggests that the parser (erl_parse) should immediately transform "fun M:F/A" to "erlang:make_fun(M, F, A)". We have not followed that approach in this implementation, because we want the abstract code to mirror the source code as closely as possible, and we also consider erlang:make_fun/3 to be an implementation detail that we might want to remove in the future. Instead, we will change the abstract format for "fun M:F/A" (in a way that is not backwards compatible), and while we are at it, we will move the translation from "fun M:F/A" to "erlang:make_fun(M, F, A)" from sys_pre_expand down to the v3_core pass. We will also update the debugger and xref to use the new format. We did consider making the abstract format backward compatible if no variables were used in the fun, but decided against it. Keeping it backward compatible would mean that there would be different abstract formats for the no-variable and variable case, and tools would have to handle both formats, probably forever. Reference: http://www.erlang.org/eeps/eep-0023.html
2011-10-27Remove unused */doc/src/make.dep filesBjörn Gustavsson
These dependency files was once used when building the documentation, but are no longer needed.
2011-08-18debugger: By default, only save non-tail-recursive callsBjörn Gustavsson
By default, the debugger use to save all calls on its simulated stack. That could facilitate finding errors, but it could also mean that the Debugger could become very slow while executing tail-recursive code.
2011-08-18debugger: Add line_number_SUITEBjörn Gustavsson
2011-08-18debugger: Include line numbers in exceptionsBjörn Gustavsson
2011-08-18Update examples in the documentation to include line numbersBjörn Gustavsson
2011-08-16emulator: Add a fourth element in exception stacktracesBjörn Gustavsson
This commit is a preparation for introducing location information (filename/line number) in stacktraces in exceptions. Currently a stack trace looks like: [{Mod1,Function1,Arity1}, . . . {ModN,FunctionN,ArityN}] Add a forth element to each tuple that can be used indication the filename and line number of the source file: [{Mod1,Function1,Arity1,Location1}, . . . {ModN,FunctionN,ArityN,LocationN}] In this commit, the fourth element will just be an empty list, and we will change all code that look at or manipulate stacktraces.
2011-08-16Remove support for very old BEAM filesBjörn Gustavsson
Since the run-time system cannot load those BEAM files, it was not possible to debug them anyway.
2011-08-16Don't include tail-recursive calls in stacktracesBjörn Gustavsson
The stacktrace in debugger-generated exceptions should be as similar to stacktraces in BEAM-generated exceptions as possible.
2011-08-16Fix the no_tail optionBjörn Gustavsson
The 'no_tail' option was broken and would work almost as the 'all' option, because it would use #ieval.top (formerly known as #ieval.last_call) as the basis for its decision to push or not. Fix it by including a boolean in each call/apply instruction indicating whether the call is tail-recursive and pass that boolean to the dbg_istk:push() function.
2011-08-16dbg_ieval: Properly handle exceptions when binary construction failsBjörn Gustavsson
An exception from eval_bits:expr_grp/5 (for constructing binaries) was not caught and handled by exception/4; thus exit_info and and stacktrace for the process was not set.
2011-08-16Fix binary matching in the debuggerBjörn Gustavsson
'eval_bits' is a common utility module used for evaluting binary construction and matching. The functions that do matching (match_bits/{6,7} and bin_gen/6) are supposed to treat the bindings as an abstract data type, but they assume that the bindings have the same representation as in the erl_eval module. That may cause binary matching to fail in the debugger, because the debugger represents the bindings as an unordered list of two-tuples, while the erl_eval modules uses an ordered list of two-tuple (an ordset). One way to fix the problem would be to let the debugger to use ordered lists to represent the bindings. Unfortunately, that would also change how the bindings are presented in the user interface. Currently, the variable have most been recently assigned is shown first, which is convenient. Fix the matching problem by mending the leaky abstraction in eval_bits. The matching functions needs to be passed two additional operations: one for looking up a variable in the bindings and one for adding a binding. Those operations could be passed as two more funs (in addition to the evaluation and match fun already passed), but the functions already have too many arguments. Therefore, change the meaning of the match fun, so that the first argument is the operation to perform ('match', 'binding', or 'add_binding') and second argument is a tuple with arguments for the operation.
2011-08-16Delay saving of the stack in exit_info when an exception occursBjörn Gustavsson
When an exception occurs, the entire stack will be converted to the external term format and kept in the exit_info variable in the process dictionary. But the exit_info variable will only be needed if the exception causes the process to terminate (not if it is caught). Delay the conversion of the stack to external format. That can save significant amounts of time (e.g. in bs_construct:mem_leak/1).
2011-08-16Eliminate warnings in test suitesBjörn Gustavsson
2011-08-16Update test suites that have been copied from other applicationsBjörn Gustavsson
A long time ago, test suites were copied from other applications. Copy the tests again to get more test cases.
2011-08-16Fix handling of guard BIFs in list and binary comprehensionsBjörn Gustavsson
In a list comprehension, a failing call to a guard BIF means false (rather than an exception).
2011-08-16Handle terms in the top-level of guards properlyBjörn Gustavsson
Expressions in guards such as: f() when [1,2,3] -> ok. would cause the debugger to crash when attempting to interpret the module containing the expressions. Other kind of constants such as: f() when 42 -> ok. were converted to an invalid internal format ({integer,Line,42} instead of {value,Line,42}), but that happened to work because because anything not equal to 'true' (even a crash) was interpreted as 'false'. Make sure to handle all possible expressions and convert them directly to {value,Line,false}. Remove the special handling of the atom 'true' in and_guard/1 since it is no longer needed.