# Debugger Release Notes (Old)

## Debugger 2.0

### Fixed errors and malfunctions

- Parts of the code, mainly for the GUI, has been rewritten in order to make Debugger more robust and efficient. The functionality remains the same but behaviour and appearance have changed slightly. Modules must have been compiled with the option `debug_info` set in order to be interpreted, only modules for which this is true are shown in the Interpret window. (Own Id: OTP-4201)
- The "Interpret Dialog" window no longer hangs if one tries to debug-compile a module residing in a sticky directory.
  (Own Id: OTP-2665)

## Debugger 1.5.4

### Fixed errors and malfunctions

- Debugger crashed when trying to save or load settings if the default directory `$HOME/.erlang_tools/debugger` had restricted access.
  (Own Id: OTP-3244)
  (Aux Id: seq3852 in supportsystem)

- The debugger can now handle bit syntax construction in guards.
  (Own Id: OTP-3741)

### Improvements and new features

- Code has been cleared up to get rid of compiler warnings.
  (Own Id: OTP-3728)

- The debugger now uses debugged information in beam files, instead of compiling the modules to be debugged. That implies modules to be debugged must be compiled beforehand and they must be compiled with `debug_info` option. Also, there is no need to set any include paths (because no compilation is done). The source code is still needed for display purposes.

  The record editor has been removed, as record names are no longer known by the debugger.
  (Own Id: OTP-4151)

### Known problems

- The "Interpret Dialog" window hangs if one tries to debug-compile a module residing in a sticky directory.
  (Own Id: OTP-2665)

- Included source code is not shown in the "Attached Process" window.
  (Own Id: OTP-3579)

## Debugger 1.5.3

### Fixed errors and malfunctions

- The debugger could not be run in embedded mode, because the dbg_ets module was not listed in the app file.
  Own Id: OTP-3829
  Aux Id: Seq 5084
- In some cases, the debugger would in a call to undefined function `erts_debug:apply/4`. This problem has been corrected.
  Own Id: OTP-3845
  Aux Id: Seq 5094

## Debugger 1.5.2

### Known Problems

- The "Interpret Dialog" window hangs if one tries to debug-compile a module residing in a sticky directory.
  Own Id: OTP-2665
- Included source code is not shown in the "Attached Process" window.
  Own Id: OTP-3579

### Improvements and New Features

- The user is notified if the record editor cannot read a record definition, instead of it silently failing.
  Own Id: OTP-3437
  Aux Id: Seq 4285

## Debugger 1.5.1

### Improvements and New Features

- The debugger was updated to handle the new fun datatype.
  Own Id: OTP-3370

## Debugger 1.5

### Fixed Errors and Malfunctions

- The debugger has been updated to cope with the new fun implementation (introduced in R5), new EXIT codes, and BIFs in other modules than `erlang`.
  Own Id: OTP-3339

## Debugger 1.3

### Fixed Errors and Malfunctions

- The Attachment window in the DEBUGGER is now faster. Once a module has been loaded in an Attachment window that module is cached. Ten modules are cached in one single Attachment window.
  Own Id: OTP-2641
- There are no longer any errors when using File->Load Settings distributed.
  Own Id: OTP-2706
- The debugger no longer crashes when another node goes down that has an active process.
  Own Id: OTP-2707, OTP-2887
- `ets:match_object/2` is made faster by removing a `receive after 1` and letting the internal BIF db_match_object decide if the current process should be rescheduled.
  Own Id: OTP-2987
  Aux Id: Seq 1500

### Improvements and New Features

- The label is now resizeable in width.
  Own Id: OTP-1995
- A window for re-binding records and variables in a more easier way is available in the Attachment window. By double clicking on a variable in the Bindings Frame the Record Editor window will pop up where one can update the chosen variable.
  Own Id: OTP-2194, OTP-2180
- It's now possible to use text search and go-to-line in View and Attachment windows.
  Own Id: OTP-2542
- It's now possible to use text search in the View and Attachment windows.
  Own Id: OTP-2704
- OTP-2180, OTP-2194
  Own Id: OTP-2792
- The Load and Save Settings now also includes the options - Include Directories and Macro Definitions from the Interpret Dialog.
  Own Id: OTP-2964
  Aux Id: Seq 1453

## Debugger 1.2.1

### Improvements and New Features

- When closing the debugger all processes are killed.
  Own Id: OTP-2066
- When a debugged process exits with an abnormal 'EXIT' reason its Attachment window is raised.
  Own Id: OTP-2198
- It's now possible to set normal break points without using the Normal Break dialog. When clicking on a row in a View or an Attachment window, the row is marked with the selection option. Double click and the break point is set.
  A break point is removed by a double click on that line.
  Own Id: OTP-2545
  Aux Id: OTP-2208, OTP-2267, OTP-2268

## Debugger 1.2

### Fixed Errors and Malfunctions

- Previously there was an Interpret menu item in the Attach Window, although this function was not implemented. The confusing menu item has now been removed.
  Own Id: OTP-2104
- Problems with selecting and double-clicking processes in monitor window has been fixed.
  Own Id: OTP-2161
- Some BIF's terminated with the wrong EXIT reason. This has been fixed.
  Own Id: OTP-2163
- The cursor busy mark in the Interpret Module dialog has been corrected.
  Own Id: OTP-2170
- Sometimes 'Clear' would crash the debugger, this has been fixed.
  Own Id: OTP-2174
- Module/Line information was mixed up the Up/Down buttons in the Attach window were used. This has been fixed.
  Own Id: OTP-2239
- An intermittent problem with doubleclicking on a process in the monitor window has been fixed.
  Own Id: OTP-2246
- Variable values are now often shortened. Click them to have their complete values displayed in the Evaluator Frame.
  Own Id: OTP-2290
- 'Kill' and 'Kill All' now performs exit(Pid,kill) for the selected process, so that are guaranteed to terminate.
  Own Id: OTP-2320
- Problems with stack Up and Down in Attach window resulting in {badmatch,'my style? ...} error messages have been fixed.
  Own Id: OTP-2322
- Problems with Process->Kill in Monitor window have been fixed.
  Own Id: OTP-2343
- The Module menu of the Attach window is now updated when modules are interpreted/uninterpreted.
  Own Id: OTP-2458
- Re-entry into re-interpreted code now updates attach window.
  Own Id: OTP-2477
- A cosmetic problem with printouts in the Evaluator frame after process exits has been fixed.
  Own Id: OTP-2528

### Improvements and New Features

- Easier to set break points. Window menu for quick access to all debugger windows. Fixed problems with interpreter dialog. Several sets of debugger states can now be saved. Easier clearing of dead processes. Exit of Monitor window now closes all windows and quits all debugging.
  Changed the way variable values are showed in the bindings panel. Several other minor usability improvements.
  The old interpreter is no longer delivered as a supported application. To use it one needs to add it's load path to the code server. The modules, i and int are still available, but where they now start the DEBUGGER GUI when any GUI response is required.
  Own Id: OTP-1611
- A new function, debugger:start/0, is now available for starting the graphical debugger.
  Own Id: OTP-2052
- After the user has interpreted a module in the Interpret Module dialog the module is no longer removed, instead it's marked with a '*' in front of the module name. Previous interpreted modules are also marked with a '*'. The focus of the list is set to the last interpreted module.
  Own Id: OTP-2095, OTP-2212, OTP-2318, OTP-2344
- All interpreter modules are now replicated (but renamed and changed) in the debugger.
  Own Id: OTP-2114
  Aux Id: OTP-2113
- It is now possible to quickly interpret and start a process in an Attachment window. With the `debugger:quick(Module, Function, [Arg1, Arg2, ...])` a module is attched on init. `debugger:q/3` has the same funtionality.
  Own Id: OTP-2175
- The Auto Load option in the Monitor window has been removed and is replaced with a Load and Save Settings dialog.
  It is now possible to save and load different settings, found under the File menu. The setting files ends with ".state" and are placed as default at ".erlang_tools/debugger/" in the user's home directory.
  Own Id: OTP-2177
- A windows manager for the debugger has been created. In the Windows menu the Monitor window and all the opened View and Attachment windows are listed. A window is raised on top when it is selected in the list of windows.
  It is not possible to open duplicate Monitor, View and Attachment windows.
  Own Id: OTP-2178
- Processes can now have their interpreted code uninterpreted without having to be terminated. They are only terminated if it is necessary, i.e. if the code is in use.
  Own Id: OTP-2181
  Aux Id: OTP-2179
- Internal changes to facilitate automatic tests.
  Own Id: OTP-2190
  Aux Id: OTP-2188
- When choosing Edit->Clear the attach windows of exited processes are closed.
  Own Id: OTP-2195
- All interpreter/debugger settings are cleared when the monitor window is closed.
  Own Id: OTP-2197
- When exiting the Monitor window the user is asked to save the current settings before he or she exits.
  Own Id: OTP-2204
- Documentation for conditional break points has been improved.
  Own Id: OTP-2210

## Source Debugger 1.1.0

### Improvements and New Features

- The DEBUGGER is now the default debugger, to use the old debugger (the INTERPRETER), start `erl` with the option `-old_debugger`.
- A new button, 'Break', has been added to the button row. The button 'Break' has the same functionality as 'Normal Break' in the 'Breaks'-menu.
- When loading a large file into the 'View'- and 'Attach' windows a pop-up window is shown instead of nothing at all. The cursor is set to a busy clock.
  Own Id: OTP-1250

### Fixed Errors and Malfunctions

- It is now possible to add include paths, using the graphical interface. The user may decide whether the macros shall be valid in the current directory only, or in all directories from that moment.
  Own Id: OTP-1815
- It is now possible to, in the graphical user interface, define macros. The user may decide whether the macros shall be valid in the current directory only, or in all directories from that moment.
  Own Id: OTP-1964
- Files impossible to compile are now reported via a pop-up window, and the file will still be visible in the file listing in the "Interpret" window. The file will not me shown in the list of loaded modules in the monitor window.
  Own Id: OTP-1963, OTP-2021
- The font of the text labels in the buttons is set to {helvetica, 12}, that looks better in the default sized window for WinNT/Unix.
  Own Id: OTP-1357, OTP-2096
- Loading source code into the attach-window is now faster.
  Own Id: OTP-2015
- Modules can be viewed in the monitor window during distribution.
  Own Id: OTP-2070
- It is now possible to set normal break points in a distributed mode.
  Own Id: OTP-2072
- Debugger no longer crashes due to font problems on Windows NT.
  Own Id: OTP-1610

### Incompatibilities with Debugger 1.0.3

- The buttons 'Time Out', 'Skip', 'Stop' and 'Messages' are removed, but they still exists in the pull-down menu.
- The menu item Module->Interpret in Attach windows has never had any functionality, so it was removed.
  Own Id: OTP-2104

### Known Problems

- New code isn't loaded when compiled.
  Own Id: OTP-2091

## Source Debugger 1.0.3

### Improvements and New Features

This debugger is the only option on the Windows platform. To use this new debugger instead of the old interpreter on Unix you start erlang with the command line option `-new_debugger`.

### Fixed Errors and Malfunctions

- The debugger is now an Erlang application, i.e. it has an application file.
  Own Id: OTP-1638, OTP-1689 Aux Id: HA57713
- Speeded up stepping of functions with variables containing large amount of data.
  Own Id: OTP-1566
- You can now set break points below line 999.
  Own Id: OTP-1290

### Known Problems

- The debugger doesn't handle macros definitions given from the command line.
  Own Id: OTP-1964
- An error loading a file for interpretation will not be reported clear enough and the file will be inserted into the list of loaded modules in the monitor window.
  Own Id: OTP-1963
- You can't give an search path in the graphical interface where to look for include files. As a work around you can define the file/module to debug/interpret from the Erlang shell and give the search path as an option. To debug/interpret the module `foo` that contains the include directive `-include("bar.hrl").` in the directory "/my/include/dir" you can do one of:

      1> ii(foo,[{i,"/my/include/dir"}]).
      2> int:i(foo,[{i,"/my/include/dir"}]).

  You can define a macro as well:

      3> ii(foo,[{d,bar,42}]).

  Own Id: OTP-1815
- Text is to big to fit on the buttons on Windows NT.
  Own Id: OTP-1357

## Source Debugger 1.0.2 (in OTP R1B)

### Improvements and New Features

- Standard help now used in the monitor window, as well as in the trace window.
- Keyboard accelerators introduced for all menus.

## Source Debugger 1.0.1

### Improvements and New Features

- A. It is now possible to set stack options for individual processes, instead of a global value for all.
- B. It is now possible to set a default back trace value either global for all new attached processes, or locally, for already attached processes, and view the back trace functions in the trace frame.

### Fixed Errors and Malfunctions

- Fixed problems caused by break points on auto attach whenever there where more than 1000 lines of code in the module. Fixed bug caused by auto attach when distributed.

## Source Debugger 1.0

The Source Debugger is a new graphical application based on GS. It is actually a new graphical front end to the old source debugger, the Interpreter. See the Source Debugger User's Guide.