Releases: WhatsApp/edb
0.5.0
Highlights
- Show process dictionary
- Show memory usage
- Show registered name / process labels
- Support
reverse_attach
request - Support
evaluate
request - Support pagination for the
variables
request - Several bug fixes and performance improvements
Full Changelog
79a0a34 Add remove_module_substitute to edb_server (Agastya Bahl)
bf8e224 Add add_module_substitute to edb_server (Agastya Bahl)
76c8d6b Unbreak OSS build (Daniel Gorin)
852933b Migrating module conversions from edb_server to edb_server_break (Agastya Bahl)
e7a59ef Add reapply_breakpoints/3 to edb_server_break (Agastya Bahl)
761793d Change strucutre of steps and vm_breakpoints maps in edb_server_break (Agastya Bahl)
324d0c2 Tag type edb_server_break:vm_module() (Agastya Bahl)
b260d01 application:ensure_all_started -> wa_test_init:ensure_all_started in SUITE. (Thomas David Cuvillier)
4d247b3 Update edb_server:stack_frames_impl() to report original module names (Agastya Bahl)
0a81c9f Fix wa_test_export_integration_SUITE sometimes timing out locally (Agastya Bahl)
18e612b Add debugger node utilities to edb_test_support (Agastya Bahl)
b10b469 Add module substitution types to edb_server (Agastya Bahl)
4c67efc Relocates '@ fb-only' annotation to fix GitHub Actions Test Failure on main (Agastya Bahl)
bd3995b Add 'reapply_breakpoints' to edb_server (Agastya Bahl)
9f2aeb5 Use K/M/G/T modifiers for process memory usage (Agastya Bahl)
24db6ea Add Dictionary info to the "Process scope" (Agastya Bahl)
231cd81 Fix issue with negative check in scope tests (Daniel Gorin)
1d2253f Avoid hardwiring process memory in testcase (Daniel Gorin)
4519753 Avoid bogus matching in scope tests (Daniel Gorin)
4b36111 Avoid matching on test for PID in process info scope (Daniel Gorin)
ba40a20 Avoid matching on test for fun expansion (Daniel Gorin)
9658cf1 Avoid hardwired pid in process mailbox test (Daniel Gorin)
4f13735 Remove usages of deprecated catch
statement (Daniel Gorin)
55c81ac Improve handling of free-variables when evaluating (Daniel Gorin)
a7c465c Add Memory usage info to the "Process scope" (Agastya Bahl)
0ce1c40 Add Label info to the "Process scope" (Agastya Bahl)
166f6c6 Add Registered name info to the "Process scope" (Agastya Bahl)
4dedf51 Add Pid info to the "Process scope" (Agastya Bahl)
a7a7250 Treat closures as structured values (Agastya Bahl)
f423f40 Hide internal modules from edb_core app (Agastya Bahl)
8644a70 eqwalizer_specs: erts_debug:set_internal_state (Ilya Klyuchnikov)
cc3b15c edb_server_process: typing (Ilya Klyuchnikov)
2929e41 Enroll erlang .config files into auto-formatting (Tom Davies)
e880aab Format erlang .app.src files (Tom Davies)
cc02172 edb_bootstrap: more type-safety (Ilya Klyuchnikov)
0933bae make includes specific (Andreas Löscher)
0d9ffce Add docs/DAP.md to ex_doc extras (Daniel Gorin)
0920edd Document the launch/attach options (Daniel Gorin)
f1982b2 Support reverse-attach on nodes with no distribution (Daniel Gorin)
55192e0 Support reverse attach on nodes started with -sname undefined
(Daniel Gorin)
1c9a68d Reduce flakiness in tests due to peer node settings (Daniel Gorin)
dcd7e77 Fix build on GitHub CI (Daniel Gorin)
563ccf6 Limit the size of value representations (Daniel Gorin)
29f4f32 Include "evaluateName" in "variables" response (Daniel Gorin)
213ef29 Implement the "evaluate" request (Daniel Gorin)
2253775 Fix spec of edb:stack_frame_vars()
(Daniel Gorin)
e823bd2 Fix bogus exception handling in edb_server (Daniel Gorin)
3c41729 Allow for module dependencies in edb_dap_eval_delegate (Daniel Gorin)
f75c4b5 Allow explicit module dependencies in edb:eval/1 (Daniel Gorin)
e346371 Add support for evaluating erlang expressions (Daniel Gorin)
2b37ad9 Update elp component on FBS:master (Ilya Klyuchnikov)
1b1f8ff Add no_os_getenv linter (Roberto Aloi)
875fce8 Add no_dialyzer_attribute linter (Roberto Aloi)
d8ae22c Implement pagination for the "variables" request (Daniel Gorin)
fdf3727 Improve variable representation (Daniel Gorin)
5a4a82a Avoid unncessasry allocations computing windows of variables (Daniel Gorin)
a1edbcc Remove edb:format() (Daniel Gorin)
4621547 Refactor "variables" implementation to avoid transferring large values (Daniel Gorin)
e1691b0 Refactor scopes implementation to reduce roundtrips (Daniel Gorin)
c6e41e1 Introduce the edb_dap_delegate module (Daniel Gorin)
fe3ebc7 Refactor frame_scope_or_structured() type (Daniel Gorin)
2fb14fa Refine types used for scopes request (Daniel Gorin)
263dbe9 Refine types used for variables request (Daniel Gorin)
28f48cb Refactor variables request handler for clarity (Daniel Gorin)
afd7979 Add a edb:eval()
function (Daniel Gorin)
1c589bb Make it easier to raise exceptions in edb_server (Daniel Gorin)
79a7b0d Fix OSS build (Daniel Gorin)
14565ca Add better support for debugging edb via instrumentation (Daniel Gorin)
18077ad Remove dependency on syntax_tools (Daniel Gorin)
1b16500 Remove references to the +debug_info option (Daniel Gorin)
fe23b10 Better handling of implicit function calls during step-in (Daniel Gorin)
e355d1b Bump edb toolchain to fix bug in erl_debugger:breakpoints/2,3 (Daniel Gorin)
77b931e Use call-targets provided by the VM for stepping-in (Daniel Gorin)
0d8688d Expand get_debug_info/1 to return calls info (Daniel Gorin)
7b3a16b Move get_debug_info/1 function to edb_server_code (Daniel Gorin)
ebfe914 Bump edb toolchain to get new debug info api (Daniel Gorin)
680441a edb_server_stack_frames: fix (Ilya Klyuchnikov)
e1fbff5 edb_dap_test_client: fix spec (Ilya Klyuchnikov)
a9dad57 Update elp component on FBS:master (Ilya Klyuchnikov)
da40b2a Fix files under whatsapp/server/erl/util/edb/edb_core/src (generatedunixname89002005287564)
f2b2745 Use erlang:breakpoints/3 for stepping (Daniel Gorin)
aea1d7f Bump otp toolchain to include erl_debugger:breakpoints/1.3 functions (Daniel Gorin)
fa0b9ae Update link to prerequisites (Roberto Aloi)
5ef5520 Add terms of use, privacy policy and copyright to README (Roberto Aloi)
5b32fcd Bump OTP toolchain to 28-rc3 (Daniel Gorin)
0.4.0
Highlights
- Preliminary support for stepping
- Support for
attach
request - Support for
pause
request - Support for
ConfigurationDone
request - Make
launch
request use reverse-attach - Expand/collapse variables
- Several bug fixes and performance improvements
Full Changelog
63034f4 Convert old-style edoc to Markdown (Roberto Aloi)
1475baa Support step-in in list/map generators (Daniel Gorin)
b8d47fd Support step-in in records (Daniel Gorin)
00d9f66 Support step-in in tuple, list and map expressions (Daniel Gorin)
108276c Support step-in in maybe-expressions (Daniel Gorin)
e2b740e Use maybe-exprs to reduce nesting in AST analysis code (Daniel Gorin)
1c7fe22 Make step-in work when the target is ambiguous (Daniel Gorin)
6f14d4a Limit targets for step-in to calls in current line (Daniel Gorin)
d8bfeee Expand/collapse variables (Roberto Aloi)
052e2a1 Support step-in in infix expressions (Daniel Gorin)
97a8530 Support step-in in begin-end blocks in step-in (Daniel Gorin)
1154825 Fix typo in API doc (Daniel Gorin)
f58959f AdapterId field is mandatory for initialize request (Roberto Aloi)
4c738b9 Handle preloaded modules gracefully (Daniel Gorin)
6d00104 Improve error message when trying to step in to an undefined function (Daniel Gorin)
8d238f4 Load the module if necessary when stepping into a call (Daniel Gorin)
1e9b94b Show reason when test-module fails to compile (Daniel Gorin)
67207f4 Load the module if necessary when setting a breakpoint (Daniel Gorin)
84775e3 Bump OTP toolchain (Daniel Gorin)
ec6c60c Support step-in in try statements (Daniel Gorin)
da8c1d5 Support step-in in case statements (Daniel Gorin)
08cf4d6 Support step-in under the catch statement (Daniel Gorin)
ea31099 Support step-in for calls under match (Daniel Gorin)
edaa75d Improve step-in error when no target found (Daniel Gorin)
b655a4d Properly explain why a breakpoint could not be set (Daniel Gorin)
e45308e Parse input to setBreakpoints request (Daniel Gorin)
a0bc88c Remove hack to support migration of "launch" request argument format (Daniel Gorin)
d94e0c1 Temporarily ban certain modules from having breakpoints (Daniel Gorin)
00e54d2 Fix potential macro precedence issue (Daniel Gorin)
3483ff7 Ignore frames with dynamic code when stepping (Daniel Gorin)
8227522 Implement stepIn request handler (Daniel Gorin)
8965ee7 Parse input to stepping requests (Daniel Gorin)
df5b1e5 Basic step-in implementation (Daniel Gorin)
124b4d4 Fix API docs for step-over and step-out functions (Daniel Gorin)
3b9643a Remove reference to "remote" node from api docs (Daniel Gorin)
26d5bab Add function to find form by function to edb_server_code (Daniel Gorin)
2240910 Bump otp toolchain to fix build on ARM (Daniel Gorin)
f1608c9 Remove website (Roberto Aloi)
bb9088c Import new version of the OTP toolchain (Daniel Gorin)
c95a615 Fix pid formatting in thread name (Daniel Gorin)
16f05c5 Avoid stepping breakpoints on stack-frames with no exception handlers (Daniel Gorin)
085135c Improve code organization in edb_server_break (Daniel Gorin)
8285b3d Batch pid => threadId mappings (Daniel Gorin)
3f1b0b5 Avoid expensive calls to edb:format() in "threads" request (Daniel Gorin)
35ad5fa Make the process info fields configurable (Daniel Gorin)
9bbf2d4 Merge process info types (Daniel Gorin)
3e6cd74 Rename field in excluded_process_info() (Daniel Gorin)
207c855 Handle race-condition in "terminate" request (Daniel Gorin)
ad30e9a Move edoc annotation to new format (Daniel Gorin)
735c6d7 Fix docs for edb.erl (Roberto Aloi)
2785ef6 Convert old-style EDoc comments to Markdown via ELP (Roberto Aloi)
f758d2c Fix files under whatsapp/server/erl/util/edb/edb/src (Roberto Aloi)
064188c Make it easier to set step-breakpoints on a function (Daniel Gorin)
dd03134 Add simple analysis to identify call targets (Daniel Gorin)
4195a8f Use erl_syntax instead of manipulating parse tree (Daniel Gorin)
88ec9fb Separate reading forms from finding lines for function (Daniel Gorin)
123c48e Unify logic for compiling test modules in tests (Daniel Gorin)
f25d3c7 Fix files under whatsapp/server/erl/util/edb/edb/src (Roberto Aloi)
32a602d Eqwalize all tests in edb_core (Daniel Gorin)
7f889a9 Simplify logic to set breakpoints for stepping (Daniel Gorin)
3bda5ed Make stepping work correctly under recursion (Daniel Gorin)
c262a60 Use dedicated module for dealing with processes (Daniel Gorin)
2db5b76 Add dummy request handler for stepIn request (Daniel Gorin)
90bfd4b use map syntax instead of function calls (Alexander Shturm)
d030906 Workaround bug in otp parser annotation (Daniel Gorin)
5c32b25 Move logic to decide which frames to intrument on step to correct module (Daniel Gorin)
b275848 Use dedicate module for dealing with stack-frames (Daniel Gorin)
0b6afda Use raw stack-frames when setting stepping breakpoints (Daniel Gorin)
ab56375 Simplify stack-frame handling (Daniel Gorin)
f0d95a8 Pre-emptively suspend process when process in step breakpoint (Daniel Gorin)
e85465a Decompose function for formatting stack frames (Daniel Gorin)
57a55e7 Make stack-frames building function parametric (Daniel Gorin)
73513f5 Import new version of OTP toolchain (Daniel Gorin)
b434522 Bump prismjs dependency to 0.30.0 (Roberto Aloi)
4d9fe3e Fix test failure on GitHub CI (Daniel Gorin)
b1e1dee Support the terminateDebuggee capability (Daniel Gorin)
0ddc63e Make "disconnect" terminate the debuggee if it was "launched" (Daniel Gorin)
9060e87 Reduce boilerplate in tests (Daniel Gorin)
286680c Make it possible to start both attach/launch sessions (Daniel Gorin)
8af7cb5 Preserve old value of ERL_AFLAGS (Daniel Gorin)
06bdd84 Make debuggee initialization code injection transparent by default (Daniel Gorin)
75adf72 Make "launch" request use reverse-attach (Daniel Gorin)
f746418 Add an edb_dap_request:abort() function to short-circuit request handlers (Daniel Gorin)
0a92a42 Update format of "launch" request (Daniel Gorin)
b8c58c6 Allow to wait for reverse-request in test client (Daniel Gorin)
36b6be7 Add override specs for erpc:call() (Daniel Gorin)
4aee2b4 Add unit tests for argument parser lib (Daniel Gorin)
f752ac8 Fix incorrect handling of stripSourcePrefix in attach request (Daniel Gorin)
7dbcfb3 Support the configurationDone request (Daniel Gorin)
45a80ec Make convenience function for constructing common errors (Daniel Gorin)
50cd84f Handle configuration phase of the protocol (Daniel Gorin)
12f7b1b Improve handling of debuggee modules (Daniel Gorin)
8057240 Step-over and step-out should fail if they can never succeed (Robin Morisset)
7109d13 Eqwalize all test suites (Daniel Gorin)
9837973 Eqwalize edb_dap_test_support module (Daniel Gorin)
4176020 Use helper for successful responses (Daniel Gorin)
f354634 Implement the "attach" request (Daniel Gorin)
3939d7d Eqwalize the dap test client (Daniel Gorin)
e75ec77 Remove "context()" from server state (Daniel Gorin)
19760d5 Use an error tag for bootstrap failures during attach (Daniel Gorin)
cc00ebf Improve error logging (Daniel Gorin)
d15d5cf Ensure we don't crash on errors handling reverse-request responses (Daniel Gorin)
12740aa Make state update in reaction() type more clear (Daniel Gorin)
ceb7bd9 Make state type more precise (Daniel Gorin)
b6af267 Simplify state handling (Daniel Gorin)
db0a8f6 Use a real parser for arguments (Daniel Gorin)
5d04e7e Add module for validating request arguments (Daniel Gorin)
fea35b8 Simplify error-handling (Daniel Gorin)
329b5d6 {BE] Refector event handling (Daniel Gorin)
9efe445 Unify handling of request/response messages (Daniel Gorin)
900a69c Refector reverse-request handling (Daniel Gorin)
9e328b4 Refactor request handling (Daniel Gorin)
552bb62 Use net_kernel:get_state() as source of truth for distribution checks (Daniel Gorin)
843e463 Put all launch-configuration under a common field (Daniel Gorin)
d438f62 Make logs easier to read (Daniel Gorin)
ffd7500 Split out transport handling from edb_dap_server (Daniel Gorin)
3614e71 Add a reverse-attach functionality (Daniel Gorin)
63bd8bc Add option to pause debuggee on bootstrap (Daniel Gorin)
381bdb7 On attaching, validate name-domain of debugger and debuggee match (Daniel Gorin)
3b29409 Add missing attachment tests (Daniel Gorin)
b6ffc91 Make attachment suites more deterministic (Daniel Gorin)
8df6796 Bump dependencies to address vulnerability (Roberto Aloi)
afc585f Add testing option to start peer node without distribution (Daniel Gorin)
10e8391 eqwalize edb_test_support module (Daniel Gorin)
f7e5841 Move distribution handling to edb:attach/1 (Daniel Gorin)
dc0f11b Improve spec of edb:attach/1 (Daniel Gorin)
7d511c5 Add option to specify connection cookie to edb:attach/1 (Daniel Gorin)
d8b1634 Fix issues in the generation of node names (Daniel Gorin)
f360fd6 Allow for passing extra erl args when calling edb_test_support:start_peer_node/2 (Daniel Gorin)
fc6a84a Group testcases in edb_attachment_SUITE (Daniel Gorin)
a525c19 Improve spec of edb_node_monitor:attach/2 (Daniel Gorin)
1e935b4 Simplify type (Daniel Gorin)
932b84d Use gen_statem timeout logic in edb_node_monitor (Daniel Gorin)
f3dc03f Put node-monitor event-subscribers in state-machine data (Daniel Gorin)
2d8a975 Refactor edb_node_monitor to use gen_statem (Daniel Gorin)
3a513b1 Turn the state of edb_node_monitor into a sum-type (Daniel Gorin)
6f2f104 Remove unused edb_server_sets:fold (Daniel Gorin)
b9f2de5 Use set_breakpoints command on the DAP request (Daniel Gorin)
7ad9c87 Add set_breakpoints(Module, Lines) command (Daniel Gorin)
c7da0c5 Refactor clear_breakpoints(Module) into edb_server_break:clear_explicits (Daniel Gorin)
afa09d5 Fix the error type of clear_breakpoint (Daniel Gorin)
5dd36a8 Remove invariant_violation from return types (Daniel Gorin)
40be5d3 Add get_breakpoints(Module) feature (Daniel Gorin)
849e074 Rename edb_boot to edb_bootstrap (Daniel Gorin)
44bb96...
0.3.0
Highlights
- Publish package and docs to hex.pm
- Introduce EDB website
- Various stability and bug fixes
Full Changelog
db6bfba Add ex_doc configuration (Roberto Aloi)
e19d842 Add Hex Metadata (Roberto Aloi)
c477bc7 GitHub CI workflows for publishing the website (Roberto Aloi)
a6102d1 Split intro into dedicated sections (Roberto Aloi)
14cdfbb Move "get started" instructions from README to user manual (Roberto Aloi)
e69b332 rebar3 instructions (Roberto Aloi)
234b93b Add troubleshooting section (Roberto Aloi)
8a4be2f Remove Docusaurus tutorial pages (Roberto Aloi)
26c6145 Customize home page (Roberto Aloi)
aa6f761 Community links (Roberto Aloi)
75978e3 Update GitHub link (Roberto Aloi)
58e5acf Create blog placeholders (Roberto Aloi)
813196e Generate Docusaurus site skeleton (Roberto Aloi)
bf4c24b Import new version of the toolchain, fixing issue with missing variable info (Daniel Gorin)
728c220 Use edb_server_maps:add instead instead of double traverse (Thibault Suzanne)
cac2223 Remove edb_server_sets:new (Thibault Suzanne)
e27d10a Define and use edb_server_maps:add
for nested map updates (Thibault Suzanne)
0c8ff27 Specify required ERL_FLAGS during runInTerminal reverse request (Roberto Aloi)
0cab9e2 Allow specifying a custom env to the launch/runInTerminal request (Roberto Aloi)
4ac01dd Avoid unexpected badarith error from creeping up in test logs (Daniel Gorin)
fa76f75 [BE] Use more robust random node names in tests (Daniel Gorin)
92d10af Avoid leaking nodes in DAP test suites (Daniel Gorin)%
0.2.0
Add escript/dap instructions to README Summary: Add instructions on how to produce an `edb` escript and how to start a DAP adapter. Reviewed By: jcpetruzza Differential Revision: D68012720 fbshipit-source-id: 519abfc8767c0fb63fe3edd548ba3c365ddf2191