From afb632d2028fdc4a37e10e41e1929264ff59f52e Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Thu, 14 Mar 2013 09:53:33 +0100 Subject: Convert XML files to UTF-8, where needed --- lib/runtime_tools/doc/src/notes.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index cd59be1e63..a44400807d 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -1,4 +1,4 @@ - + @@ -38,7 +38,7 @@

Fix Table Viewer refresh crash on no more existing ets - tables (Thanks to Peti Gömori)

+ tables (Thanks to Peti Gömori)

Own Id: OTP-10635

-- cgit v1.2.3 From e5875001247e6a6ac4f474157a51a8c54f94ae49 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Thu, 14 Mar 2013 16:01:25 +0100 Subject: Convert XML files to UTF-8 --- lib/runtime_tools/doc/src/book.xml | 2 +- lib/runtime_tools/doc/src/dbg.xml | 2 +- lib/runtime_tools/doc/src/dyntrace.xml | 4 ++-- lib/runtime_tools/doc/src/erts_alloc_config.xml | 4 ++-- lib/runtime_tools/doc/src/fascicules.xml | 2 +- lib/runtime_tools/doc/src/notes.xml | 2 +- lib/runtime_tools/doc/src/notes_history.xml | 4 ++-- lib/runtime_tools/doc/src/part.xml | 4 ++-- lib/runtime_tools/doc/src/part_notes.xml | 4 ++-- lib/runtime_tools/doc/src/part_notes_history.xml | 4 ++-- lib/runtime_tools/doc/src/ref_man.xml | 4 ++-- lib/runtime_tools/doc/src/runtime_tools_app.xml | 4 ++-- 12 files changed, 20 insertions(+), 20 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/book.xml b/lib/runtime_tools/doc/src/book.xml index 62f145f0a5..d3c462c0ad 100644 --- a/lib/runtime_tools/doc/src/book.xml +++ b/lib/runtime_tools/doc/src/book.xml @@ -1,4 +1,4 @@ - + diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index d8c82b2459..74ce8ccf3f 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -1,4 +1,4 @@ - + diff --git a/lib/runtime_tools/doc/src/dyntrace.xml b/lib/runtime_tools/doc/src/dyntrace.xml index f0149d0665..25f750677f 100644 --- a/lib/runtime_tools/doc/src/dyntrace.xml +++ b/lib/runtime_tools/doc/src/dyntrace.xml @@ -1,10 +1,10 @@ - +
- 19962012 + 19962013 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/erts_alloc_config.xml b/lib/runtime_tools/doc/src/erts_alloc_config.xml index 6acf498411..31145bee63 100644 --- a/lib/runtime_tools/doc/src/erts_alloc_config.xml +++ b/lib/runtime_tools/doc/src/erts_alloc_config.xml @@ -1,10 +1,10 @@ - +
- 20072010 + 20072013 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/fascicules.xml b/lib/runtime_tools/doc/src/fascicules.xml index 5230dc7e90..1a0bd6ec97 100644 --- a/lib/runtime_tools/doc/src/fascicules.xml +++ b/lib/runtime_tools/doc/src/fascicules.xml @@ -1,4 +1,4 @@ - + diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index a44400807d..84d49cfa99 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -1,4 +1,4 @@ - + diff --git a/lib/runtime_tools/doc/src/notes_history.xml b/lib/runtime_tools/doc/src/notes_history.xml index 8fe27f619c..aba9f47cbf 100644 --- a/lib/runtime_tools/doc/src/notes_history.xml +++ b/lib/runtime_tools/doc/src/notes_history.xml @@ -1,11 +1,11 @@ - +
2006 - 2011 + 2013 Ericsson AB, All Rights Reserved diff --git a/lib/runtime_tools/doc/src/part.xml b/lib/runtime_tools/doc/src/part.xml index 948d4a8020..d81eed6515 100644 --- a/lib/runtime_tools/doc/src/part.xml +++ b/lib/runtime_tools/doc/src/part.xml @@ -1,10 +1,10 @@ - +
- 20122012 + 20122013 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/part_notes.xml b/lib/runtime_tools/doc/src/part_notes.xml index 6f7f610da0..395de39ac7 100644 --- a/lib/runtime_tools/doc/src/part_notes.xml +++ b/lib/runtime_tools/doc/src/part_notes.xml @@ -1,10 +1,10 @@ - +
- 20042009 + 20042013 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/part_notes_history.xml b/lib/runtime_tools/doc/src/part_notes_history.xml index 2ce1a5de05..46a6baa45e 100644 --- a/lib/runtime_tools/doc/src/part_notes_history.xml +++ b/lib/runtime_tools/doc/src/part_notes_history.xml @@ -1,11 +1,11 @@ - +
2006 - 2011 + 2013 Ericsson AB, All Rights Reserved diff --git a/lib/runtime_tools/doc/src/ref_man.xml b/lib/runtime_tools/doc/src/ref_man.xml index df3446cd17..6017f3cdaa 100644 --- a/lib/runtime_tools/doc/src/ref_man.xml +++ b/lib/runtime_tools/doc/src/ref_man.xml @@ -1,10 +1,10 @@ - +
- 19992012 + 19992013 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/runtime_tools_app.xml b/lib/runtime_tools/doc/src/runtime_tools_app.xml index 1fd61b84d8..4b030b09af 100644 --- a/lib/runtime_tools/doc/src/runtime_tools_app.xml +++ b/lib/runtime_tools/doc/src/runtime_tools_app.xml @@ -1,11 +1,11 @@ - +
1999 - 2011 + 2013 Ericsson AB, All Rights Reserved -- cgit v1.2.3 From b1ee66711e447a1666b07d9160ee28d096c17064 Mon Sep 17 00:00:00 2001 From: Siri Hansen Date: Tue, 6 Aug 2013 12:20:01 +0200 Subject: Allow 'silent' flag to be set with dbg:p/2 This flag, which silences call trace, can be set with erlang:trace/3, but was not allowed in dbg:p/2. This has been corrected. --- lib/runtime_tools/doc/src/dbg.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index d8c82b2459..36b3b51a99 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -244,7 +244,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ all -

Sets all flags.

+

Sets all flags except silent.

clear -- cgit v1.2.3 From c011973178d860f280c6ce18b07ce4176aec5b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Fri, 6 Sep 2013 13:40:21 +0200 Subject: Change encoding of troublesome notes.xml files to utf-8 Most notes.xml files will be updated in every release and cause the kind of the problems described in the previous commit. --- lib/runtime_tools/doc/src/notes.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 2281ac4a49..db35eba436 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -1,4 +1,4 @@ - + @@ -69,7 +69,7 @@

Fix Table Viewer refresh crash on no more existing ets - tables (Thanks to Peti Gömori)

+ tables (Thanks to Peti Gömori)

Own Id: OTP-10635

-- cgit v1.2.3 From 20641fe0f2ea745873fc7557448d3a7deb1bd639 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 16 Sep 2013 20:11:53 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index db35eba436..b334bdcac2 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -31,6 +31,35 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.8.12 + +
Fixed Bugs and Malfunctions + + +

+ The process trace flag 'silent' is now allowed in call to + dbg:p/2.

+

+ Own Id: OTP-11222

+
+
+
+ + +
Improvements and New Features + + +

+ Introduced functionality for inspection of system and + build configuration.

+

+ Own Id: OTP-11196

+
+
+
+ +
+
Runtime_Tools 1.8.11
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 25237481ccccd3ddfa74582dc267632ad618ba30 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 9 Dec 2013 20:12:33 +0100 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index b334bdcac2..32b7d168f5 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -31,6 +31,22 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.8.13 + +
Fixed Bugs and Malfunctions + + +

+ Observer did not produce correct result when ERTS + internal memory allocators had been disabled.

+

+ Own Id: OTP-11520

+
+
+
+ +
+
Runtime_Tools 1.8.12
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 843ec2fd63fdf3d15f5e2e50f93c80273b280ec4 Mon Sep 17 00:00:00 2001 From: Luca Favatella Date: Thu, 2 Jan 2014 17:07:43 +0000 Subject: Correct doc of return value of dbg:{stop,stop_clear} functions --- lib/runtime_tools/doc/src/dbg.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 36b3b51a99..94df478c90 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -1024,7 +1024,7 @@ hello - stop() -> stopped + stop() -> ok Stop the dbgserver and the tracing of all processes.

Stops the dbg server and clears all trace flags for @@ -1035,7 +1035,7 @@ hello - stop_clear() -> stopped + stop_clear() -> ok Stop the dbgserver and the tracing of all processes, and clears trace patterns.

Same as stop/0, but also clears all trace patterns on local -- cgit v1.2.3 From e0052804daa336e0d05b8a451e15b07afd085074 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Thu, 13 Mar 2014 03:47:28 +0100 Subject: Introduce system_information:sanity_check() --- lib/runtime_tools/doc/src/Makefile | 10 ++- lib/runtime_tools/doc/src/ref_man.xml | 1 + lib/runtime_tools/doc/src/specs.xml | 4 + lib/runtime_tools/doc/src/system_information.xml | 98 ++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 lib/runtime_tools/doc/src/specs.xml create mode 100644 lib/runtime_tools/doc/src/system_information.xml (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/Makefile b/lib/runtime_tools/doc/src/Makefile index 51d93df418..07c63197e9 100644 --- a/lib/runtime_tools/doc/src/Makefile +++ b/lib/runtime_tools/doc/src/Makefile @@ -40,7 +40,7 @@ RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) # Target Specs # ---------------------------------------------------- XML_APPLICATION_FILES = ref_man.xml -XML_REF3_FILES = dbg.xml dyntrace.xml erts_alloc_config.xml +XML_REF3_FILES = dbg.xml dyntrace.xml erts_alloc_config.xml system_information.xml XML_REF6_FILES = runtime_tools_app.xml XML_PART_FILES = part_notes.xml part_notes_history.xml part.xml @@ -71,12 +71,20 @@ HTML_REF_MAN_FILE = $(HTMLDIR)/index.html TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf +SPECS_FILES = $(XML_REF3_FILES:%.xml=$(SPECDIR)/specs_%.xml) + +TOP_SPECS_FILE = specs.xml + # ---------------------------------------------------- # FLAGS # ---------------------------------------------------- XML_FLAGS += DVIPS_FLAGS += +SPECS_ESRC = ../../src + +SPECS_FLAGS = -I../../include -I../../../kernel/src + # ---------------------------------------------------- # Targets # ---------------------------------------------------- diff --git a/lib/runtime_tools/doc/src/ref_man.xml b/lib/runtime_tools/doc/src/ref_man.xml index 6017f3cdaa..25fa97896b 100644 --- a/lib/runtime_tools/doc/src/ref_man.xml +++ b/lib/runtime_tools/doc/src/ref_man.xml @@ -35,5 +35,6 @@ + diff --git a/lib/runtime_tools/doc/src/specs.xml b/lib/runtime_tools/doc/src/specs.xml new file mode 100644 index 0000000000..d4c3c9dfe6 --- /dev/null +++ b/lib/runtime_tools/doc/src/specs.xml @@ -0,0 +1,4 @@ + + + + diff --git a/lib/runtime_tools/doc/src/system_information.xml b/lib/runtime_tools/doc/src/system_information.xml new file mode 100644 index 0000000000..b586334ae7 --- /dev/null +++ b/lib/runtime_tools/doc/src/system_information.xml @@ -0,0 +1,98 @@ + + + + +

+ + 2014 + Ericsson AB. All Rights Reserved. + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + + + + + + 1 + + + + + system_information.xml +
+ system_information + System Information + +

+
+ + + + Perform a sanity check + +

Performs a sanity check on the system. If no issues + were found, ok is returned. If issues were + found, {failed, Failures} is + returned. All failures found will be part of the + Failures list. Currently defined + Failure elements in the + Failures list:

+ + InvalidAppFile +

An application has an invalid .app file. The + second element identifies the application which has the + invalid .app file.

+ InvalidApplicationVersion +

An application has an invalid application version. + The second element identifies the application version that + is invalid.

+ MissingRuntimeDependencies +

An application is missing + runtime + dependencies. The second element identifies the + application (with version) that has missing dependencies. + The third element contains the missing dependencies.

+

Note that this check use application versions that + are loaded, or will be loaded when used. You might have + application versions that satisfies all dependencies + installed in the system, but if those are not loaded this + check will fail. The system will of course also fail when + used like this. This may happen when you have multiple + branched + versions of the same application installed in the + system, but you do not use a + boot + script identifing the correct application version.

+
+
+

Currently the sanity check is limited to verifying + runtime dependencies found in the .app files of + all applications. More checks will be introduced in the + future. This implies that the return type will + change in the future.

+

An ok return value only means that + sanity_check/0 did not find any issues, not + that no issues exist.

+
+
+ + + Write miscellaneous system information to file +

Writes miscellaneous system information to file. This + information will typically be requested by the Erlang/OTP team + at Ericsson AB when reporting an issue.

+
+
+ + -- cgit v1.2.3 From f719d0fe308f00b85f92c29d7cdf9b0dc20d98a2 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 7 Apr 2014 19:52:48 +0200 Subject: Update release notes --- lib/runtime_tools/doc/src/notes.xml | 89 +++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 32b7d168f5..9b026aee11 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -31,6 +31,95 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.8.14 + +
Fixed Bugs and Malfunctions + + +

+ The documentation for the return value of + dbg:{stop,stop_clear} functions are now correct (Thanks + to Luca Favatella)

+

+ Own Id: OTP-11603

+
+ +

+ Fix DTrace build on Illumos. (Thanks to Ryan Zezeski.)

+

+ Own Id: OTP-11622

+
+ +

+ Do not turn off scheduler_wall_time, as it can interfere + with other applications usage.

+

+ Own Id: OTP-11693 Aux Id: seq12528

+
+ +

+ Application upgrade (appup) files are corrected for the + following applications:

+

+ asn1, common_test, compiler, crypto, debugger, + dialyzer, edoc, eldap, erl_docgen, et, eunit, gs, hipe, + inets, observer, odbc, os_mon, otp_mibs, parsetools, + percept, public_key, reltool, runtime_tools, ssh, + syntax_tools, test_server, tools, typer, webtool, wx, + xmerl

+

+ A new test utility for testing appup files is added to + test_server. This is now used by most applications in + OTP.

+

+ (Thanks to Tobias Schlager)

+

+ Own Id: OTP-11744

+
+
+
+ + +
Improvements and New Features + + +

+ Allow install path to have unicode characters.

+

+ Own Id: OTP-10877

+
+ +

+ The erts_alloc_config tool has been updated to + produce configurations that better fit todays SMP support + in the VM.

+

+ Own Id: OTP-11662

+
+ +

+ The app-file key + runtime_dependencies + has been introduced.

+

+ Runtime dependencies have been added to all app-files in + OTP. Note that these may not be completely correct during + OTP 17, but this is actively being worked on.

+

+ The function system_information:sanity_check/0 + will verify all declared runtime dependencies in the + system when called.

+

+ Own Id: OTP-11773

+
+
+
+ +
+
Runtime_Tools 1.8.13
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 7f3486a5ddc02a366f2945dfd009c4a2697a2b98 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 9 Dec 2014 15:21:47 +0100 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 9b026aee11..2877355718 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -31,6 +31,23 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.8.15 + +
Fixed Bugs and Malfunctions + + +

+ Add nif_version to erlang:system_info/1 in + order to get the NIF API version of the runtime system in + a way similar to driver_version.

+

+ Own Id: OTP-12298

+
+
+
+ +
+
Runtime_Tools 1.8.14
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 62870c998955e1498e71bfc90607885e96ecaa27 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 31 Mar 2015 12:24:04 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 2877355718..1612c62c98 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -31,6 +31,22 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.8.16 + +
Fixed Bugs and Malfunctions + + +

+ The trace process started by dbg would not always + terminate when dbg:stop/0 was called.

+

+ Own Id: OTP-12517

+
+
+
+ +
+
Runtime_Tools 1.8.15
Fixed Bugs and Malfunctions -- cgit v1.2.3 From b313f94e91cf050eae4486ea2afcbc8aa094061b Mon Sep 17 00:00:00 2001 From: Magnus Henoch Date: Fri, 12 Jun 2015 13:12:43 +0100 Subject: Fix markup in dbg.xml Put the name of the functions linked to inside the seealso tag, not the word "see". --- lib/runtime_tools/doc/src/dbg.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index d31ccd834d..94556b7b51 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -167,7 +167,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ If the Item is a pid(), the corresponding process is traced. The process may be a remote process (on another Erlang node). The node must be in the list of - traced nodes (seen/1 and tracer/0/2/3). + traced nodes (see n/1 and + tracer/0/2/3). If the Item is the atom all, all processes in the system as well as all processes created hereafter are to be traced. This also affects all nodes added with the @@ -648,7 +649,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

If Nodename is the local node, the error reason cant_add_local_node is returned.

-

If a trace port (seetrace_port/2) is +

If a trace port (see trace_port/2) is running on the local node, remote nodes can not be traced with a tracer process. The error reason cant_trace_remote_pid_to_local_port is returned. A @@ -761,7 +762,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ type which is independent of the tracer on the trace control node.

-

For details, seetracer/2.

+

For details, see tracer/2.

-- cgit v1.2.3 From 738c34d4bb8f1a3811acd00af8c6c12107f8315b Mon Sep 17 00:00:00 2001 From: Bruce Yinhe Date: Thu, 18 Jun 2015 11:31:02 +0200 Subject: Change license text to APLv2 --- lib/runtime_tools/doc/src/Makefile | 21 +++++++++++---------- lib/runtime_tools/doc/src/book.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/dbg.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/dyntrace.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/erts_alloc_config.xml | 19 ++++++++++--------- lib/runtime_tools/doc/src/notes.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/notes_history.xml | 19 ++++++++++--------- lib/runtime_tools/doc/src/part.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/part_notes.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/part_notes_history.xml | 19 ++++++++++--------- lib/runtime_tools/doc/src/ref_man.xml | 21 +++++++++++---------- lib/runtime_tools/doc/src/runtime_tools_app.xml | 19 ++++++++++--------- lib/runtime_tools/doc/src/system_information.xml | 21 +++++++++++---------- 13 files changed, 139 insertions(+), 126 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/Makefile b/lib/runtime_tools/doc/src/Makefile index 07c63197e9..0292333f0a 100644 --- a/lib/runtime_tools/doc/src/Makefile +++ b/lib/runtime_tools/doc/src/Makefile @@ -3,16 +3,17 @@ # # Copyright Ericsson AB 1999-2012. All Rights Reserved. # -# The contents of this file are subject to the Erlang Public License, -# Version 1.1, (the "License"); you may not use this file except in -# compliance with the License. You should have received a copy of the -# Erlang Public License along with this software. If not, it can be -# retrieved online at http://www.erlang.org/. -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # # %CopyrightEnd% # diff --git a/lib/runtime_tools/doc/src/book.xml b/lib/runtime_tools/doc/src/book.xml index d3c462c0ad..0e75ec28bb 100644 --- a/lib/runtime_tools/doc/src/book.xml +++ b/lib/runtime_tools/doc/src/book.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 94556b7b51..1a11806211 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/dyntrace.xml b/lib/runtime_tools/doc/src/dyntrace.xml index 25f750677f..edf08e7753 100644 --- a/lib/runtime_tools/doc/src/dyntrace.xml +++ b/lib/runtime_tools/doc/src/dyntrace.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/erts_alloc_config.xml b/lib/runtime_tools/doc/src/erts_alloc_config.xml index 31145bee63..6a6ad93d48 100644 --- a/lib/runtime_tools/doc/src/erts_alloc_config.xml +++ b/lib/runtime_tools/doc/src/erts_alloc_config.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 1612c62c98..3b1349e252 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/notes_history.xml b/lib/runtime_tools/doc/src/notes_history.xml index aba9f47cbf..853a5eece0 100644 --- a/lib/runtime_tools/doc/src/notes_history.xml +++ b/lib/runtime_tools/doc/src/notes_history.xml @@ -9,16 +9,17 @@ Ericsson AB, All Rights Reserved - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. The Initial Developer of the Original Code is Ericsson AB. diff --git a/lib/runtime_tools/doc/src/part.xml b/lib/runtime_tools/doc/src/part.xml index d81eed6515..c0a9e63331 100644 --- a/lib/runtime_tools/doc/src/part.xml +++ b/lib/runtime_tools/doc/src/part.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/part_notes.xml b/lib/runtime_tools/doc/src/part_notes.xml index 395de39ac7..7a452aa79a 100644 --- a/lib/runtime_tools/doc/src/part_notes.xml +++ b/lib/runtime_tools/doc/src/part_notes.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/part_notes_history.xml b/lib/runtime_tools/doc/src/part_notes_history.xml index 46a6baa45e..545d3dacfe 100644 --- a/lib/runtime_tools/doc/src/part_notes_history.xml +++ b/lib/runtime_tools/doc/src/part_notes_history.xml @@ -9,16 +9,17 @@ Ericsson AB, All Rights Reserved - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. The Initial Developer of the Original Code is Ericsson AB. diff --git a/lib/runtime_tools/doc/src/ref_man.xml b/lib/runtime_tools/doc/src/ref_man.xml index 25fa97896b..ea0c0832a4 100644 --- a/lib/runtime_tools/doc/src/ref_man.xml +++ b/lib/runtime_tools/doc/src/ref_man.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/runtime_tools/doc/src/runtime_tools_app.xml b/lib/runtime_tools/doc/src/runtime_tools_app.xml index 4b030b09af..fb02d678cc 100644 --- a/lib/runtime_tools/doc/src/runtime_tools_app.xml +++ b/lib/runtime_tools/doc/src/runtime_tools_app.xml @@ -9,16 +9,17 @@ Ericsson AB, All Rights Reserved - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. The Initial Developer of the Original Code is Ericsson AB. diff --git a/lib/runtime_tools/doc/src/system_information.xml b/lib/runtime_tools/doc/src/system_information.xml index b586334ae7..1c33ff1a40 100644 --- a/lib/runtime_tools/doc/src/system_information.xml +++ b/lib/runtime_tools/doc/src/system_information.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -- cgit v1.2.3 From 2955ddebc32837b66d9bacb4e925ad0ed0033168 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 23 Jun 2015 10:24:26 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 3b1349e252..71b244ec6b 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,22 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.9 + +
Improvements and New Features + + +

+ Change license text from Erlang Public License to Apache + Public License v2

+

+ Own Id: OTP-12845

+
+
+
+ +
+
Runtime_Tools 1.8.16
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 5d6aea209c3dafa1bfdb35ea559809185b060bfa Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 8 Jul 2015 20:31:29 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 71b244ec6b..5aebea98ce 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,23 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.9.1 + +
Fixed Bugs and Malfunctions + + +

+ The trace_file_drv did not handle EINTR + correct which caused it to fail when the runtime system + received a signal.

+

+ Own Id: OTP-12890 Aux Id: seq12885

+
+
+
+ +
+
Runtime_Tools 1.9
Improvements and New Features -- cgit v1.2.3 From 5483c81d3093830dbcc132bfb1426c59ed2a8e57 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Mon, 5 Oct 2015 09:22:24 +0200 Subject: runtime_tools: Explain that dbg:stop only clears local trace patterns --- lib/runtime_tools/doc/src/dbg.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index d31ccd834d..5daf2c4940 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -1028,9 +1028,9 @@ hello Stop the dbgserver and the tracing of all processes.

Stops the dbg server and clears all trace flags for - all processes and all trace patterns for all functions. Also + all processes and all local trace patterns for all functions. Also shuts down all trace clients and closes all trace ports.

-

Note that no trace patterns are affected by this +

Note that no global trace patterns are affected by this function.

@@ -1038,8 +1038,7 @@ hello stop_clear() -> ok Stop the dbgserver and the tracing of all processes, and clears trace patterns. -

Same as stop/0, but also clears all trace patterns on local - and global functions calls.

+

Same as stop/0, but also clears all trace patterns on global functions calls.

-- cgit v1.2.3 From f4a0ae1736216feac5ae053610644bba2e12ed34 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 15 Dec 2015 09:45:27 +0100 Subject: Update release notes --- lib/runtime_tools/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 5aebea98ce..e92f0e02ad 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,21 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.9.2 + +
Improvements and New Features + + +

+ Clarified dbg:stop documentation

+

+ Own Id: OTP-13078

+
+
+
+ +
+
Runtime_Tools 1.9.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 664ed2a6fd2b324bb6b56db3d3eca853cfda8f61 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Fri, 12 Sep 2014 16:38:00 +0200 Subject: erts: Add microstate accounting Microstate accounting is a way to track which state the different threads within ERTS are in. The main usage area is to pin point performance bottlenecks by checking which states the threads are in and then from there figuring out why and where to optimize. Since checking whether microstate accounting is on or off is relatively expensive if done in a short loop only a few of the states are enabled by default and more states can be enabled through configure. I've done some benchmarking and the overhead with it turned off is not noticible and with it on it is a fraction of a percent. If you enable the extra states, depending on the benchmark, the ovehead when turned off is about 1% and when turned on somewhere inbetween 5-15%. OTP-12345 --- lib/runtime_tools/doc/src/Makefile | 2 +- lib/runtime_tools/doc/src/msacc.xml | 305 ++++++++++++++++++++++++++++++++++ lib/runtime_tools/doc/src/ref_man.xml | 1 + lib/runtime_tools/doc/src/specs.xml | 1 + 4 files changed, 308 insertions(+), 1 deletion(-) create mode 100644 lib/runtime_tools/doc/src/msacc.xml (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/Makefile b/lib/runtime_tools/doc/src/Makefile index 0292333f0a..38725807ae 100644 --- a/lib/runtime_tools/doc/src/Makefile +++ b/lib/runtime_tools/doc/src/Makefile @@ -41,7 +41,7 @@ RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) # Target Specs # ---------------------------------------------------- XML_APPLICATION_FILES = ref_man.xml -XML_REF3_FILES = dbg.xml dyntrace.xml erts_alloc_config.xml system_information.xml +XML_REF3_FILES = dbg.xml dyntrace.xml erts_alloc_config.xml system_information.xml msacc.xml XML_REF6_FILES = runtime_tools_app.xml XML_PART_FILES = part_notes.xml part_notes_history.xml part.xml diff --git a/lib/runtime_tools/doc/src/msacc.xml b/lib/runtime_tools/doc/src/msacc.xml new file mode 100644 index 0000000000..129da3d230 --- /dev/null +++ b/lib/runtime_tools/doc/src/msacc.xml @@ -0,0 +1,305 @@ + + + + +
+ + 20142014 + Ericsson AB. All Rights Reserved. + + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Microstate Accounting + Lukas Larsson + + 1 + + + 14-09-30 + A + msacc.xml +
+ msacc + Convenience functions for microstate accounting + +

This module implements some convenience functions for analyzing + microstate accounting data. For details about how to use the basic api and + what the different states represent see + + erlang:statistics(microstate_accounting).

+ +

Basic Scenario

+
1> msacc:start(1000).
+ok
+2> msacc:print().
+Average thread real-time    : 1000513 us
+Accumulated system run-time :    2213 us
+Average scheduler run-time  :    1076 us
+
+        Thread      aux check_io emulator       gc    other     port    sleep
+
+Stats per thread:
+     async( 0)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%  100.00%
+     async( 1)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%  100.00%
+       aux( 1)    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%   99.99%
+ scheduler( 1)    0.00%    0.03%    0.13%    0.00%    0.01%    0.00%   99.82%
+ scheduler( 2)    0.00%    0.00%    0.00%    0.00%    0.03%    0.00%   99.97%
+
+Stats per type:
+         async    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%  100.00%
+           aux    0.00%    0.00%    0.00%    0.00%    0.00%    0.00%   99.99%
+     scheduler    0.00%    0.02%    0.06%    0.00%    0.02%    0.00%   99.89%
+ok
+
+

This first command enables microstate accounting for 1000 milliseconds. + See start/0, + stop/0, + reset/0 and + start/1 for more details. + The second command prints the statistics gathered during that time. + First three general statistics are printed.

+ + Average real-time + The average time spent collecting data in the threads. + This should be close to the time which data was collected. + + System run-time + The total run-time of all threads in the system. + This is what you get if you call msacc:stats(total_runtime,Stats). + + Average scheduler run-time + The average run-time for the schedulers. + This is the average amount of time the schedulers did not sleep. + +

Then one column per state is printed with a the percentage of time this + thread spent in the state out of it's own real-time. After the thread + specific time, the accumulated time for each type of thread is printed in + a similar format.

+

Since we have the average real-time and the percentage spent in each + state we can easily calculate the time spent in each state by multiplying + Average thread real-time with Thread state %, i.e. to + get the time Scheduler 1 spent in the emulator state we do + 1000513us * 0.13% = 1300us.

+
+ + + + + + + + + +

A map containing the different microstate accounting states and + the number of microseconds spent in it.

+
+ + + + + +

A map containing information about a specific thread. The + percentages in the map can be either run-time or real-time depending + on if runtime or realtime was requested from + stats/2. system is the + percentage of total system time for this specific thread.

+
+ + +

A map containing the different microstate accounting states. Each + value in the map contains another map with the percentage of time that + this thread has spent in the specific state. Both the percentage of + system time and the time for that specific thread is part of + the map.

+
+ + + + + + + + +

The different states that a thread can be in. See + + erlang:statistics(microstate_accounting) for details. +

+
+ + +

The different options that can be given to + print/2. +

+
+
+ + + + Check if microstate accounting is available + +

This function checks whether microstate accounting + is available or not.

+
+
+ + + Start microstate accounting. + +

Start microstate accounting. Returns whether it was + previously enabled or disabled.

+
+
+ + + Start microstate accounting for a time. + +

Resets all counters and then starts microstate accounting + for the given milliseconds.

+
+
+ + + Stop microstate accounting. + +

Stop microstate accounting. + Returns whether is was previously enabled or disabled.

+
+
+ + + Reset microstate accounting counters + +

Reset microstate accounting counters. + Returns whether is was enabled or disabled.

+
+
+ + + Print microstate statistics + +

+ Prints the current microstate accounting to standard out. + Same as + + msacc:print(msacc:stats(),#{}). + +

+
+
+ + + Print microstate statistics + +

Print the given microstate statistics values to stdout. + Same as + + msacc:print(DataOrStats,#{}). + +

+
+
+ + + Print microstate statistics + +

Print the given microstate statistics values to standard out. + With many states this can be quite verbose. See the top of this + reference manual for a brief description of what the fields mean.

+

It is possible to print more specific types of statistics by + first manipulating the DataOrStats using + stats/2. + For instance if you want to print the percentage of run-time for each + thread you can do:

+
msacc:print(msacc:stats(runtime,msacc:stats())).
+

If you want to only print run-time per thread type you can do:

+
msacc:print(msacc:stats(type,msacc:stats(runtime,msacc:stats()))).
+

Options

+ + systemPrint percentage of time spent in each + state out of system time as well as thread time. + Default: false. + +
+
+ + + Print microstate statistics + +

Print the given microstate statistics values to the given file + or device. The other arguments behave the same way as for + print/2.

+
+
+ + + + +

Returns a runtime system independent version of the microstate + statistics data presented by + + erlang:statistics(microstate_accounting). + All counters have been normalized to be in microsecond resolution.

+
+
+ + + + +

Returns the system time for the given microstate statistics values. + System time is the accumulated time of all threads.

+ + realtime + Returns all time recorded for all threads. + runtime + Returns all time spent doing work for all threads, i.e. + all time not spent in the sleep state. + +
+
+ + + + +

Returns fractions of real-time or run-time spent in the various + threads from the given microstate statistics values.

+
+
+ + + + +

Returns a list of microstate statistics values where the values + for all threads of the same type has been merged.

+
+
+ + + + +

Dumps the current microstate statistics counters to a file that can + be parsed with + file:consult/1.

+
+
+ + + + +

Read a file dump produced by + to_file(Filename).

+
+
+
+
diff --git a/lib/runtime_tools/doc/src/ref_man.xml b/lib/runtime_tools/doc/src/ref_man.xml index ea0c0832a4..8657a07a30 100644 --- a/lib/runtime_tools/doc/src/ref_man.xml +++ b/lib/runtime_tools/doc/src/ref_man.xml @@ -36,6 +36,7 @@ + diff --git a/lib/runtime_tools/doc/src/specs.xml b/lib/runtime_tools/doc/src/specs.xml index d4c3c9dfe6..978bd39e55 100644 --- a/lib/runtime_tools/doc/src/specs.xml +++ b/lib/runtime_tools/doc/src/specs.xml @@ -1,4 +1,5 @@ + -- cgit v1.2.3 From 0f8afe80c6582f7affd17f36dc9cb48cc7946713 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 14 Mar 2016 10:46:23 +0100 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index e92f0e02ad..24b589b928 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,21 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.9.3 + +
Improvements and New Features + + +

dbg:trace_client() now uses a read buffer to + speed up reading of trace files.

+

+ Own Id: OTP-13279

+
+
+
+ +
+
Runtime_Tools 1.9.2
Improvements and New Features -- cgit v1.2.3 From 6664eed554974336909d3ffe03f20349cc4c38fd Mon Sep 17 00:00:00 2001 From: Henrik Nord Date: Tue, 15 Mar 2016 15:19:56 +0100 Subject: update copyright-year --- lib/runtime_tools/doc/src/Makefile | 2 +- lib/runtime_tools/doc/src/book.xml | 2 +- lib/runtime_tools/doc/src/dbg.xml | 2 +- lib/runtime_tools/doc/src/dyntrace.xml | 2 +- lib/runtime_tools/doc/src/erts_alloc_config.xml | 2 +- lib/runtime_tools/doc/src/notes.xml | 2 +- lib/runtime_tools/doc/src/notes_history.xml | 2 +- lib/runtime_tools/doc/src/part.xml | 2 +- lib/runtime_tools/doc/src/part_notes.xml | 2 +- lib/runtime_tools/doc/src/part_notes_history.xml | 2 +- lib/runtime_tools/doc/src/ref_man.xml | 2 +- lib/runtime_tools/doc/src/runtime_tools_app.xml | 2 +- lib/runtime_tools/doc/src/system_information.xml | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/Makefile b/lib/runtime_tools/doc/src/Makefile index 38725807ae..0a590ff9ec 100644 --- a/lib/runtime_tools/doc/src/Makefile +++ b/lib/runtime_tools/doc/src/Makefile @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 1999-2012. All Rights Reserved. +# Copyright Ericsson AB 1999-2016. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/runtime_tools/doc/src/book.xml b/lib/runtime_tools/doc/src/book.xml index 0e75ec28bb..e2ab4c6f62 100644 --- a/lib/runtime_tools/doc/src/book.xml +++ b/lib/runtime_tools/doc/src/book.xml @@ -4,7 +4,7 @@
- 19992013 + 19992016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 2065627026..0232cc0453 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -4,7 +4,7 @@
- 19962013 + 19962016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/dyntrace.xml b/lib/runtime_tools/doc/src/dyntrace.xml index edf08e7753..0cdcecab68 100644 --- a/lib/runtime_tools/doc/src/dyntrace.xml +++ b/lib/runtime_tools/doc/src/dyntrace.xml @@ -4,7 +4,7 @@
- 19962013 + 19962016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/erts_alloc_config.xml b/lib/runtime_tools/doc/src/erts_alloc_config.xml index 6a6ad93d48..ffc4ec5285 100644 --- a/lib/runtime_tools/doc/src/erts_alloc_config.xml +++ b/lib/runtime_tools/doc/src/erts_alloc_config.xml @@ -4,7 +4,7 @@
- 20072013 + 20072016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 24b589b928..57241edbdc 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042013 + 20042016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/notes_history.xml b/lib/runtime_tools/doc/src/notes_history.xml index 853a5eece0..48b868ff5b 100644 --- a/lib/runtime_tools/doc/src/notes_history.xml +++ b/lib/runtime_tools/doc/src/notes_history.xml @@ -5,7 +5,7 @@
2006 - 2013 + 2016 Ericsson AB, All Rights Reserved diff --git a/lib/runtime_tools/doc/src/part.xml b/lib/runtime_tools/doc/src/part.xml index c0a9e63331..14e8b71c83 100644 --- a/lib/runtime_tools/doc/src/part.xml +++ b/lib/runtime_tools/doc/src/part.xml @@ -4,7 +4,7 @@
- 20122013 + 20122016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/part_notes.xml b/lib/runtime_tools/doc/src/part_notes.xml index 7a452aa79a..cabf3e39da 100644 --- a/lib/runtime_tools/doc/src/part_notes.xml +++ b/lib/runtime_tools/doc/src/part_notes.xml @@ -4,7 +4,7 @@
- 20042013 + 20042016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/part_notes_history.xml b/lib/runtime_tools/doc/src/part_notes_history.xml index 545d3dacfe..dd1991f23a 100644 --- a/lib/runtime_tools/doc/src/part_notes_history.xml +++ b/lib/runtime_tools/doc/src/part_notes_history.xml @@ -5,7 +5,7 @@
2006 - 2013 + 2016 Ericsson AB, All Rights Reserved diff --git a/lib/runtime_tools/doc/src/ref_man.xml b/lib/runtime_tools/doc/src/ref_man.xml index 8657a07a30..d2fb7a29af 100644 --- a/lib/runtime_tools/doc/src/ref_man.xml +++ b/lib/runtime_tools/doc/src/ref_man.xml @@ -4,7 +4,7 @@
- 19992013 + 19992016 Ericsson AB. All Rights Reserved. diff --git a/lib/runtime_tools/doc/src/runtime_tools_app.xml b/lib/runtime_tools/doc/src/runtime_tools_app.xml index fb02d678cc..a2cf623977 100644 --- a/lib/runtime_tools/doc/src/runtime_tools_app.xml +++ b/lib/runtime_tools/doc/src/runtime_tools_app.xml @@ -5,7 +5,7 @@
1999 - 2013 + 2016 Ericsson AB, All Rights Reserved diff --git a/lib/runtime_tools/doc/src/system_information.xml b/lib/runtime_tools/doc/src/system_information.xml index 1c33ff1a40..53dc595e64 100644 --- a/lib/runtime_tools/doc/src/system_information.xml +++ b/lib/runtime_tools/doc/src/system_information.xml @@ -4,7 +4,7 @@
- 2014 + 20142016 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From 2a0e30cb155b80273eb43bc0e01376b68a5fb5b0 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Thu, 17 Mar 2016 16:02:16 +0100 Subject: runtime_tools: Lots of dbg docs updates --- lib/runtime_tools/doc/src/dbg.xml | 281 ++++++++++++++++++++++---------------- 1 file changed, 165 insertions(+), 116 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 0232cc0453..ccb3bca50e 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -36,14 +36,30 @@ The Text Based Trace Facility

This module implements a text based interface to the - trace/3 and the trace_pattern/2 BIFs. It makes it - possible to trace functions, processes and messages on text based - terminals. It can be used instead of, or as complement to, the - pman module. -

-

For some examples of how to use dbg from the Erlang + trace/3 and the + trace_pattern/2 BIFs. It makes it + possible to trace functions, processes, ports and messages. +

+

+ To quickly get started on tracing function calls you can use the following + code in the Erlang shell: +

+
+1> dbg:tracer(). %% Start the default trace message receiver
+{ok,<0.36.0>}
+2> dbg:p(all, c). %% Setup call (c) tracing on all processes
+{ok,[{matched,nonode@nohost,26}]}
+3> dbg:tp(lists, seq, x). %% Setup an exception return trace (x) on lists:seq
+{ok,[{matched,nonode@nohost,2},{saved,x}]}
+4> lists:seq(1,10).
+(<0.34.0>) call lists:seq(1,10)
+(<0.34.0>) returned from lists:seq/2 -> [1,2,3,4,5,6,7,8,9,10]
+[1,2,3,4,5,6,7,8,9,10]
+    
+

+ For more examples of how to use dbg from the Erlang shell, see the simple example section. -

+

The utilities are also suitable to use in system testing on large systems, where other tools have too much impact on the system performance. Some primitive support for sequential tracing @@ -164,53 +180,66 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Traces Item in accordance to the value specified by Flags. The variation of Item is listed below:

- - If the Item is a pid(), the corresponding - process is traced. The process may be a remote process - (on another Erlang node). The node must be in the list of - traced nodes (see n/1 and - tracer/0/2/3). - If the Item is the atom all, all processes in the - system as well as all processes created hereafter are - to be traced. This also affects all nodes added with the - n/1 or tracer/0/2/3 function. - If the Item is the atom new, no currently existing - processes are affected, but every process created after the - call is.This also affects all nodes added with the - n/1 or tracer/0/2/3 function. - If the Item is the atom existing, all - existing processes are traced, but new processes will not - be affected.This also affects all nodes added with the - n/1 or tracer/0/2/3 function. - If the Item is an atom other than all, - new or existing, the process with the - corresponding registered name is traced.The process may be a - remote process (on another Erlang node). The node must be added - with the n/1 or tracer/0/2/3 function. - If the Item is an integer, the process ]]> is - traced. - If the Item is a tuple {X, Y, Z}, the - process ]]> is - traced. + + pid() or port() + The corresponding process or port is traced. The process or port may + be a remote process or port (on another Erlang node). The node must + be in the list of traced nodes (see n/1 + and tracer/3). + all + All processes and ports in the system as well as all processes and ports + created hereafter are to be traced. + all_processes + All processes in the system as well as all processes created hereafter are to be traced. + all_ports + All ports in the system as well as all ports created hereafter are to be traced. + new + All processes and ports created after the call is are to be traced. + new_processes + All processes created after the call is are to be traced. + new_ports + All ports created after the call is are to be traced. + existing + All existing processes and ports are traced. + existing_processes + All existing processes are traced. + existing_ports + All existing ports are traced. + atom() + The process or port with the corresponding registered name is traced. The process or + port may be a remote process (on another Erlang node). The node must be + added with the n/1 or + tracer/3 function. + integer() + The process ]]> is traced. + {X, Y, Z} + The process ]]> is traced. + string() If the Item is a string "]]> - as returned from pid_to_list/1, the process + as returned from pid_to_list/1, the process ]]> is traced. - + + +

When enabling an Item that represents a group of processes, + the Item is enabled on all nodes added with the + n/1 or + tracer/3 function.

+

Flags can be a single atom, or a list of flags. The available flags are:

s (send) -

Traces the messages the process sends.

+

Traces the messages the process or port sends.

r (receive) -

Traces the messages the process receives.

+

Traces the messages the process or port receives.

m (messages) -

Traces the messages the process receives and sends.

+

Traces the messages the process or port receives and sends.

c (call) @@ -221,6 +250,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Traces process related events to the process.

+ ports + +

Traces port related events to the port.

+
sos (set on spawn)

Lets all processes created by the traced @@ -241,8 +274,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ sofl (set on first link)

This is the same as sol, but only for - the first call to - link/1 by the traced process.

+ the first call to + link/1 by the traced process.

all @@ -258,7 +291,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ erlang:trace/3

The function returns either an error tuple or a tuple {ok, List}. The List consists of - specifications of how many processes that matched (in the + specifications of how many processes and ports that matched (in the case of a pure pid() exactly 1). The specification of matched processes is {matched, Node, N}. If the remote processor call,rpc, to a remote node fails, @@ -286,9 +319,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ i() -> ok - Display information about all traced processes. + Display information about all traced processes and ports. -

Displays information about all traced processes.

+

Displays information about all traced processes and ports.

@@ -327,35 +360,41 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function enables call trace for one or more - functions. All exported functions matching the {Module, Function, Arity} argument will be concerned, but the + functions. All exported functions matching the {Module, Function, Arity} + argument will be concerned, but the match_spec() may further narrow down the set of function calls generating trace messages.

For a description of the match_spec() syntax, please turn to the User's guide part of the online documentation for the runtime system (erts). The - chapter Match Specification in Erlang explains the - general match specification "language".

+ chapter Match Specifications in Erlang + explains the general match specification "language". + The most common generic match specifications used can be + found as Built-inAlias', see + ltp/0 below for details. +

The Module, Function and/or Arity parts of the tuple may be specified as the atom '_' which is a "wild-card" matching all modules/functions/arities. Note, if the Module is specified as '_', the Function and Arity parts have to be specified as '_' too. The same holds for the Functions relation to the Arity.

-

All nodes added with n/1 or tracer/0/2/3 will +

All nodes added with n/1 or + tracer/3 will be affected by this call, and if Module is not '_' the module will be loaded on all nodes.

The function returns either an error tuple or a tuple {ok, List}. The List consists of specifications of how - many functions that matched, in the same way as the processes - are presented in the return value of p/2.

+ many functions that matched, in the same way as the processes and ports + are presented in the return value of p/2.

There may be a tuple {saved, N} in the return value, if the MatchSpec is other than []. The integer N may then be used in subsequent calls to this function and will stand as an "alias" for the given expression. There are also a couple of - built-in aliases for common expressions, see ltp/0 below - for details.

+ built-in aliases for common expressions, see + ltp/0 below for details.

If an error is returned, it can be due to errors in compilation of the match specification. Such errors are presented as a list of tuples {error, string()} where @@ -394,7 +433,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ tpl({Module, Function, Arity}, MatchSpec) -> {ok, MatchDesc} | {error, term()} Set pattern for traced local (as well as global) function calls -

This function works as tp/2, but enables +

This function works as tp/2, but enables tracing for local calls (and local functions) as well as for global calls (and functions).

@@ -441,10 +480,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function disables call tracing on the specified functions. The semantics of the parameter is the same as for the corresponding function specification in - tp/2 or tpl/2. Both local and global call trace + tp/2 or tpl/2. Both local and global call trace is disabled.

The return value reflects how many functions that matched, - and is constructed as described in tp/2. No tuple + and is constructed as described in tp/2. No tuple {saved, N} is however ever returned (for obvious reasons).

@@ -480,8 +519,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ ctpl({Module, Function, Arity}) -> {ok, MatchDesc} | {error, term()} Clear call trace pattern for the specified functions -

This function works as ctp/1, but only disables - tracing set up with tpl/2 (not with tp/2).

+

This function works as ctp/1, but only disables + tracing set up with tpl/2 (not with tp/2).

@@ -516,8 +555,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ ctpg({Module, Function, Arity}) -> {ok, MatchDesc} | {error, term()} Clear call trace pattern for the specified functions -

This function works as ctp/1, but only disables - tracing set up with tp/2 (not with tpl/2).

+

This function works as ctp/1, but only disables + tracing set up with tp/2 (not with tpl/2).

@@ -526,13 +565,13 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Use this function to recall all match specifications previously used in the session (i. e. previously saved during calls - to tp/2, and built-in match specifications. + to tp/2, and built-in match specifications. This is very useful, as a complicated match_spec can be quite awkward to write. Note that the - match specifications are lost if stop/0 is called.

+ match specifications are lost if stop/0 is called.

Match specifications used can be saved in a file (if a read-write file system is present) for use in later - debugging sessions, see wtp/1 and rtp/1

+ debugging sessions, see wtp/1 and rtp/1

There are three built-in trace patterns: exception_trace, caller_trace and caller_exception_trace (or x, c and @@ -555,10 +594,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ Delete all saved match specifications.

Use this function to "forget" all match specifications - saved during calls to tp/2. + saved during calls to tp/2. This is useful when one wants to restore other match - specifications from a file with rtp/1. Use - dtp/1 to delete specific saved match specifications.

+ specifications from a file with rtp/1. Use + dtp/1 to delete specific saved match specifications.

@@ -569,7 +608,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Use this function to "forget" a specific match specification - saved during calls to tp/2.

+ saved during calls to tp/2.

@@ -581,12 +620,12 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function will save all match specifications saved - during the session (during calls to tp/2) + during the session (during calls to tp/2) and built-in match specifications in a text file with the name designated by Name. The format of the file is textual, why it can be edited with an ordinary text editor, and then restored with - rtp/1.

+ rtp/1.

Each match spec in the file ends with a full stop (.) and new (syntactically correct) match specifications can be added to the file manually.

@@ -604,7 +643,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function reads match specifications from a file - (possibly) generated by the wtp/1 function. It checks + (possibly) generated by the wtp/1 function. It checks the syntax of all match specifications and verifies that they are correct. The error handling principle is "all or nothing", i. e. if some of the match specifications are @@ -612,14 +651,14 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ saved match specifications for the running system.

The match specifications in the file are merged with the current match specifications, so that no duplicates - are generated. Use ltp/0 to see what numbers were + are generated. Use ltp/0 to see what numbers were assigned to the specifications from the file.

The function will return an error, either due to I/O problems (like a non existing or non readable file) or due to file format problems. The errors from a bad format file are in a more or less textual format, which will give a hint - to what's causing the problem. -

+ to what's causing the problem. +

@@ -631,12 +670,12 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

The dbg server keeps a list of nodes where tracing - should be performed. Whenever a tp/2 call or a - p/2 call is made, it is executed for all nodes in this - list including the local node (except for p/2 with a - specific pid() as first argument, in which case the + should be performed. Whenever a tp/2 call or a + p/2 call is made, it is executed for all nodes in this + list including the local node (except for p/2 with a + specific pid() or port() as first argument, in which case the command is executed only on the node where the designated - process resides). + process or port resides).

This function adds a remote node (Nodename) to the list of nodes where tracing is performed. It starts a tracer @@ -645,17 +684,17 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ distribution). If no tracer process is running on the local node, the error reason no_local_tracer is returned. The tracer process on the local node must be started with the - tracer/0/2 function. + tracer/0/2 function.

If Nodename is the local node, the error reason cant_add_local_node is returned.

-

If a trace port (see trace_port/2) is +

If a trace port (see trace_port/2) is running on the local node, remote nodes can not be traced with a tracer process. The error reason cant_trace_remote_pid_to_local_port is returned. A trace port can however be started on the remote node with the - tracer/3 function. + tracer/3 function.

The function will also return an error if the node Nodename is not reachable.

@@ -669,7 +708,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Clears a node from the list of traced nodes. Subsequent - calls to tp/2 and p/2 will not consider that + calls to tp/2 and p/2 will not consider that node, but tracing already activated on the node will continue to be in effect.

Returns ok, cannot fail.

@@ -688,37 +727,42 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function starts a server on the local node that will be the recipient of all trace messages. All subsequent calls - to p/2 will result in messages sent to the newly + to p/2 will result in messages sent to the newly started trace server.

A trace server started in this way will simply display the trace messages in a formatted way in the Erlang shell - (i. e. use io:format). See tracer/2 for a description - of how the trace message handler can be customized. -

-

To start a similar tracer on a remote node, use n/1.

+ (i. e. use io:format). See tracer/2 for a description + of how the trace message handler can be customized. +

+

To start a similar tracer on a remote node, use n/1.

tracer(Type, Data) -> {ok, pid()} | {error, Error} Start a tracer server with additional parameters - Type = port | process - Data = PortGenerator | HandlerSpec - HandlerSpec = {HandlerFun, InitialData} - HandlerFun = fun() (two arguments) - InitialData = term() + Type = port | process | module + Data = PortGenerator | HandlerSpec | ModuleSpec PortGenerator = fun() (no arguments) Error = term() + HandlerSpec = {HandlerFun, InitialData} + HandlerFun = fun() (two arguments) + ModuleSpec = {TracerModule, TracerState} + ModuleModule = atom() + InitialData = TracerState = term()

This function starts a tracer server with additional parameters on the local node. The first parameter, the Type, indicates if trace messages should be handled - by a receiving process (process) or by a tracer port - (port). For a description about tracer ports see - trace_port/2. + by a receiving process (process), by a tracer port + (port) or by a tracer module + (module). For a description about tracer ports see + trace_port/2 + and for a tracer modules see + erl_tracer.

-

If Type is a process, a message handler function can +

If Type is process, a message handler function can be specified (HandlerSpec). The handler function, which should be a fun taking two arguments, will be called for each trace message, with the first argument containing the @@ -729,18 +773,22 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ choose any appropriate action to take when invoked, and can save a state for the next invocation by returning it.

-

If Type is a port, then the second parameter should +

If Type is port, then the second parameter should be a fun which takes no arguments and returns a newly opened trace port when called. Such a fun is - preferably generated by calling trace_port/2. + preferably generated by calling trace_port/2.

+

if Type is module, then the second parameter should + be a tuple describing the erl_tracer + module to be used for tracing and the state to be used for + that tracer module.

If an error is returned, it can either be due to a tracer server already running ({error,already_started}) or due to the HandlerFun throwing an exception.

To start a similar tracer on a remote node, use - tracer/3. -

+ tracer/3. +

@@ -750,20 +798,20 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ Nodename = atom() -

This function is equivalent to tracer/2, but acts on +

This function is equivalent to tracer/2, but acts on the given node. A tracer is started on the node (Nodename) and the node is added to the list of traced nodes.

-

This function is not equivalent to n/1. While - n/1 starts a process tracer which redirects all trace +

This function is not equivalent to n/1. While + n/1 starts a process tracer which redirects all trace information to a process tracer on the local node (i.e. the - trace control node), tracer/3 starts a tracer of any + trace control node), tracer/3 starts a tracer of any type which is independent of the tracer on the trace control node.

-

For details, see tracer/2.

+

For details, see tracer/2.

@@ -795,9 +843,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ file and the ip trace drivers. The file driver sends all trace messages into one or several binary files, from where they later can be fetched and processed with the - trace_client/2 function. The ip driver opens a TCP/IP + trace_client/2 function. The ip driver opens a TCP/IP port where it listens for connections. When a client - (preferably started by calling trace_client/2 on + (preferably started by calling trace_client/2 on another Erlang node) connects, all trace messages are sent over the IP network for further processing by the remote client.

@@ -836,7 +884,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ as fast as they are produced by the runtime system, a special message is sent, which indicates how many messages that are dropped. That message will arrive at the handler function - specified in trace_client/3 as the tuple {drop, N} where N is the number of consecutive messages + specified in trace_client/3 as the tuple {drop, N} where N is the number of consecutive messages dropped. In case of heavy tracing, drop's are likely to occur, and they surely occur if no client is reading the trace messages.

@@ -890,7 +938,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\
get_listen_port -

Returns {ok, IpPort} where IpPortis +

Returns {ok, IpPort} where IpPort is the IP port number used by the driver listen socket. Only the ip trace driver supports this operation.

@@ -913,7 +961,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function starts a trace client that reads the output created by a trace port driver and handles it in mostly the - same way as a tracer process created by the tracer/0 + same way as a tracer process created by the tracer/0 function.

If Type is file, the client reads all trace messages stored in the file named Filename or @@ -925,7 +973,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

If Type is follow_file, the client behaves as in the file case, but keeps trying to read (and process) more data - from the file until stopped by stop_trace_client/1. + from the file until stopped by stop_trace_client/1. WrapFilesSpec is not allowed as second argument for this Type.

If Type is ip, the client connects to the @@ -981,10 +1029,10 @@ hello InitialData = term() -

This function works exactly as trace_client/2, but +

This function works exactly as trace_client/2, but allows you to write your own handler function. The handler function works mostly as the one described in - tracer/2, but will also have to be prepared to handle + tracer/2, but will also have to be prepared to handle trace messages of the form {drop, N}, where N is the number of dropped messages. This pseudo trace message will only occur if the ip trace driver is used.

@@ -1003,7 +1051,7 @@ hello

This function shuts down a previously started trace client. The Pid argument is the process id returned - from the trace_client/2 or trace_client/3 call.

+ from the trace_client/2 or trace_client/3 call.

@@ -1156,8 +1204,9 @@ SeqTrace [0]: (<0.30.0>) <0.25.0> ! {dbg,{ok,<0.31.0>}} [Serial: {4,5}] of causing a deadlock. This will happen if a group leader process generates a trace message and the tracer process, by calling the trace handler function, sends an IO request to the same group leader. The problem can only occur if the trace handler - prints to tty using an io function such as format/2. Note that when - dbg:p(all,call) is called, IO processes are also traced. + prints to tty using an io function such as format/2. + Note that when + dbg:p(all,call) is called, IO processes are also traced. Here's an example:

 %% Using a default line editing shell
-- 
cgit v1.2.3


From 6117ee72af5c0c2973a0f20fb847a216825db03f Mon Sep 17 00:00:00 2001
From: Lukas Larsson 
Date: Fri, 18 Mar 2016 19:46:04 +0100
Subject: runtime_tools: Make dbg work with erl_tracer modules

OTP-13500
---
 lib/runtime_tools/doc/src/dbg.xml | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

(limited to 'lib/runtime_tools/doc/src')

diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml
index ccb3bca50e..0128e23a47 100644
--- a/lib/runtime_tools/doc/src/dbg.xml
+++ b/lib/runtime_tools/doc/src/dbg.xml
@@ -288,7 +288,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\
           
         
         

The list can also include any of the flags allowed in - erlang:trace/3

+ erlang:trace/3

The function returns either an error tuple or a tuple {ok, List}. The List consists of specifications of how many processes and ports that matched (in the @@ -747,7 +747,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ Error = term() HandlerSpec = {HandlerFun, InitialData} HandlerFun = fun() (two arguments) - ModuleSpec = {TracerModule, TracerState} + ModuleSpec = fun() (no arguments) | {TracerModule, TracerState} ModuleModule = atom() InitialData = TracerState = term() @@ -779,9 +779,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ preferably generated by calling trace_port/2.

if Type is module, then the second parameter should - be a tuple describing the erl_tracer + be either a tuple describing the erl_tracer module to be used for tracing and the state to be used for - that tracer module.

+ that tracer module or a fun returning the same tuple.

If an error is returned, it can either be due to a tracer server already running ({error,already_started}) or due to the HandlerFun throwing an exception. @@ -800,8 +800,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function is equivalent to tracer/2, but acts on the given node. A tracer is started on the node - (Nodename) and the node is added to the list of traced - nodes. + (Nodename) and the node is added to the list of traced nodes.

This function is not equivalent to n/1. While @@ -1066,11 +1065,11 @@ hello

Return the process or port to which all trace messages are sent. Nodename = atom() - Tracer = port() | pid() + Tracer = port() | pid() | {module(), term()} -

Returns the process or port to which all trace - messages are sent.

+

Returns the process, port or tracer module to which all trace + messages are sent.

-- cgit v1.2.3 From 535aec73c5af7c7e2f48f29ad35d2319d91b9c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Wed, 27 Apr 2016 18:55:43 +0200 Subject: runtime_tools: User's guide to LTTng and dyntrace --- lib/runtime_tools/doc/src/LTTng.xml | 245 ++++++++++++++++++++++++++++++++++++ lib/runtime_tools/doc/src/Makefile | 2 +- lib/runtime_tools/doc/src/part.xml | 1 + 3 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 lib/runtime_tools/doc/src/LTTng.xml (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml new file mode 100644 index 0000000000..eab1848e88 --- /dev/null +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -0,0 +1,245 @@ + + + +
+ + 20162016 + Ericsson AB. All Rights Reserved. + + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + LTTng and Erlang/OTP + + + + + + 2016-04-27 + + LTTng.xml +
+ +
+ Introduction +

The Linux Trace Toolkit: next generation is an open source system software package + for correlated tracing of the Linux kernel, user applications and libraries.

+

For more information, please visit http://lttng.org

+
+ +
+ Building Erlang/OTP with LTTng support +

+ Configure and build Erlang with LTTng support: +

+

For LTTng to work properly with Erlang/OTP you need + the following packages installed:

+ + +

LTTng-tools: a command line interface to control tracing sessions.

+

LTTng-UST: user space tracing library.

+
+ +

On Ubuntu this can be installed via aptitude:

+ + $ sudo aptitude install lttng-tools liblttng-ust-dev +

See Installing LTTng + for more information on how to install LTTng on your system.

+ +

After LTTng is properly installed on the system Erlang/OTP can be built with LTTng support.

+ + +$ ./configure --with-dynamic-trace=lttng +$ make +
+ +
+ Dyntrace Tracepoints +

All tracepoints are in the domain of com_ericsson_dyntrace

+

All Erlang types are the string equivalent in LTTng.

+ +

process_spawn

+ + pid : string :: Process ID. Ex. "<0.131.0>" + parent : string :: Process ID. Ex. "<0.131.0>" + entry : string :: Code Location. Ex. "lists:sort/1" + +

Example:

+

process_spawn: { cpu_id = 3 }, { pid = "<0.131.0>", parent = "<0.130.0>", entry = "erlang:apply/2" }

+ +

process_link

+ + to : string :: Process ID or Port ID. Ex. "<0.131.0>" + from : string :: Process ID or Port ID. Ex. "<0.131.0>" + type : string :: "link" | "unlink" + +

Example:

+

process_link: { cpu_id = 3 }, { from = "<0.130.0>", to = "<0.131.0>", type = "link" }

+ + +

process_exit

+ + pid : string :: Process ID. Ex. "<0.131.0>" + reason : string :: Exit reason. Ex. "normal" + +

Example:

+

process_exit: { cpu_id = 3 }, { pid = "<0.130.0>", reason = "normal" }

+ +

process_register

+ + pid : string :: Process ID. Ex. "<0.131.0>" + name : string :: Registered name. Ex. "error_logger" + type : string :: "register" | "unregister" + +

Example:

+

process_register: { cpu_id = 0 }, { pid = "<0.128.0>", name = "dyntrace_lttng_SUITE" type = "register" }

+ +

process_scheduled

+ + pid : string :: Process ID. Ex. "<0.131.0>" + entry : string :: Code Location. Ex. "lists:sort/1" + type : string :: "in" | "out" | "in_exiting" | "out_exiting" | "out_exited" + + +

Example:

+

process_scheduled: { cpu_id = 0 }, { pid = "<0.136.0>", entry = "erlang:apply/2", type = "in" }

+ + +

port_open

+ + pid : string :: Process ID. Ex. "<0.131.0>" + driver : string :: Driver name. Ex. "efile" + port : string :: Port ID. Ex. "#Port<0.1031>" + + +

Example:

+

port_open: { cpu_id = 5 }, { pid = "<0.131.0>", driver = "'/bin/sh -s unix:cmd'", port = "#Port<0.1887>" }

+ +

port_exit

+ + port : string :: Port ID. Ex. "#Port<0.1031>" + reason : string :: Exit reason. Ex. "normal" + +

Example:

+

port_exit: { cpu_id = 5 }, { port = "#Port<0.1887>", reason = "normal" }

+ +

port_link

+ + to : string :: Process ID. Ex. "<0.131.0>" + from : string :: Process ID. Ex. "<0.131.0>" + type : string :: "link" | "unlink" + +

Example:

+

port_link: { cpu_id = 5 }, { from = "#Port<0.1887>", to = "<0.131.0>", type = "unlink" }

+ +

port_scheduled

+ + port : string :: Port ID. Ex. "#Port<0.1031>" + entry : string :: Callback. Ex. "open" + type : string :: "in" | "out" | "in_exiting" | "out_exiting" | "out_exited" + + +

Example:

+

port_scheduled: { cpu_id = 5 }, { pid = "#Port<0.1905>", entry = "close", type = "out" }

+ +

function_call

+ + pid : string :: Process ID. Ex. "<0.131.0>" + entry : string :: Code Location. Ex. "lists:sort/1" + depth : integer :: Stack depth. Ex. 0 + +

Example:

+

function_call: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:'-t_call/1-fun-1-'/0", depth = 0 }

+ +

function_return

+ + pid : string :: Process ID. Ex. "<0.131.0>" + entry : string :: Code Location. Ex. "lists:sort/1" + depth : integer :: Stack depth. Ex. 0 + +

Example:

+

function_return: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:waiter/0", depth = 0 }

+ +

function_exception

+ + pid : string :: Process ID. Ex. "<0.131.0>" + entry : string :: Code Location. Ex. "lists:sort/1" + class : string :: Error reason. Ex. "error" + +

Example:

+

function_exception: { cpu_id = 5 }, { pid = "<0.144.0>", entry = "t:call_exc/1", class = "error" }

+ +

message_send

+ + from : string :: Process ID or Port ID. Ex. "<0.131.0>" + to : string :: Process ID or Port ID. Ex. "<0.131.0>" + message : string :: Message sent. Ex. "{<0.162.0>,ok}" + +

Example:

+

message_send: { cpu_id = 3 }, { from = "#Port<0.1938>", to = "<0.160.0>", message = "{#Port<0.1938>,eof}" }

+ +

message_receive

+ + to : string :: Process ID or Port ID. Ex. "<0.131.0>" + message : string :: Message received. Ex. "{<0.162.0>,ok}" + +

Example:

+

message_receive: { cpu_id = 7 }, { to = "<0.167.0>", message = "{<0.165.0>,ok}" }

+ +

gc_minor_start

+ + pid : string :: Process ID. Ex. "<0.131.0>" + need : integer :: Heap need. Ex. 2 + heap : integer :: Young heap word size. Ex. 233 + old_heap : integer :: Old heap word size. Ex. 233 + +

Example:

+

gc_minor_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 0, heap = 610, old_heap = 0 }

+ +

gc_minor_end

+ + pid : string :: Process ID. Ex. "<0.131.0>" + reclaimed : integer :: Heap reclaimed. Ex. 2 + heap : integer :: Young heap word size. Ex. 233 + old_heap : integer :: Old heap word size. Ex. 233 + +

Example:

+

gc_minor_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 120, heap = 1598, old_heap = 1598 }

+ +

gc_major_start

+ + pid : string :: Process ID. Ex. "<0.131.0>" + need : integer :: Heap need. Ex. 2 + heap : integer :: Young heap word size. Ex. 233 + old_heap : integer :: Old heap word size. Ex. 233 + +

Example:

+

gc_major_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 8, heap = 2586, old_heap = 1598 }

+ +

gc_major_end

+ + pid : string :: Process ID. Ex. "<0.131.0>" + reclaimed : integer :: Heap reclaimed. Ex. 2 + heap : integer :: Young heap word size. Ex. 233 + old_heap : integer :: Old heap word size. Ex. 233 + +

Example:

+

gc_major_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 240, heap = 4185, old_heap = 0 }

+ +
+ +
+ Examples +
+
diff --git a/lib/runtime_tools/doc/src/Makefile b/lib/runtime_tools/doc/src/Makefile index 0a590ff9ec..5ce40bb995 100644 --- a/lib/runtime_tools/doc/src/Makefile +++ b/lib/runtime_tools/doc/src/Makefile @@ -45,7 +45,7 @@ XML_REF3_FILES = dbg.xml dyntrace.xml erts_alloc_config.xml system_information.x XML_REF6_FILES = runtime_tools_app.xml XML_PART_FILES = part_notes.xml part_notes_history.xml part.xml -XML_CHAPTER_FILES = notes.xml notes_history.xml +XML_CHAPTER_FILES = notes.xml notes_history.xml LTTng.xml GENERATED_XML_FILES = DTRACE.xml SYSTEMTAP.xml diff --git a/lib/runtime_tools/doc/src/part.xml b/lib/runtime_tools/doc/src/part.xml index 14e8b71c83..34acf69fc8 100644 --- a/lib/runtime_tools/doc/src/part.xml +++ b/lib/runtime_tools/doc/src/part.xml @@ -34,6 +34,7 @@

Runtime Tools

+ -- cgit v1.2.3 From ab9c1f0412bd0d5a018f04cd22c08cac3e1f2612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Mon, 2 May 2016 17:03:29 +0200 Subject: runtime_tools: Document BEAM lttng tracepoints --- lib/runtime_tools/doc/src/LTTng.xml | 216 ++++++++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index eab1848e88..57c73469d1 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -239,6 +239,222 @@ $ make
+
+ BEAM Tracepoints +

All tracepoints are in the domain of com_ericsson_otp

+

All Erlang types are the string equivalent in LTTng.

+ +

scheduler_poll

+ + scheduler : integer :: Scheduler ID. Ex. 1 + runnable : integer :: Runnable. Ex. 1 + +

Example:

+

scheduler_poll: { cpu_id = 4 }, { scheduler = 1, runnable = 1 }

+ +

driver_init

+ + driver : string :: Driver name. Ex. "efile" + major : integer :: Major version. Ex. 3 + minor : integer :: Minor version. Ex. 1 + flags : integer :: Flags. Ex. 1 + +

Example:

+

driver_init: { cpu_id = 2 }, { driver = "caller_drv", major = 3, minor = 3, flags = 1 }

+ +

driver_start

+ + pid : string :: Process ID. Ex. "<0.131.0>" + driver : string :: Driver name. Ex. "efile" + port : string :: Port ID. Ex. "#Port<0.1031>" + +

Example:

+

driver_start: { cpu_id = 2 }, { pid = "<0.198.0>", driver = "caller_drv", port = "#Port<0.3676>" }

+ +

driver_output

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + bytes : integer :: Size of data returned. Ex. 82 + +

Example:

+

driver_output: { cpu_id = 2 }, { pid = "<0.198.0>", port = "#Port<0.3677>", driver = "/bin/sh -s unix:cmd", bytes = 36 }

+ +

driver_outputv

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + bytes : integer :: Size of data returned. Ex. 82 + +

Example:

+

driver_outputv: { cpu_id = 5 }, { pid = "<0.194.0>", port = "#Port<0.3663>", driver = "tcp_inet", bytes = 3 }

+ +

driver_ready_input

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + +

Example:

+

driver_ready_input: { cpu_id = 5 }, { pid = "<0.189.0>", port = "#Port<0.3637>", driver = "inet_gethost 4 " }

+ +

driver_ready_output

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + +

Example:

+

driver_ready_output: { cpu_id = 5 }, { pid = "<0.194.0>", port = "#Port<0.3663>", driver = "tcp_inet" }

+ +

driver_timeout

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + +

Example:

+

driver_timeout: { cpu_id = 5 }, { pid = "<0.196.0>", port = "#Port<0.3664>", driver = "tcp_inet" }

+ +

driver_stop_select

+ + driver : string :: Driver name. Ex. "efile" + +

Example:

+

driver_stop_select: { cpu_id = 5 }, { driver = "unknown" }

+ +

driver_flush

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + +

Example:

+

driver_flush: { cpu_id = 7 }, { pid = "<0.204.0>", port = "#Port<0.3686>", driver = "tcp_inet" }

+ +

driver_stop

+ + pid : string :: Process ID. Ex. "<0.131.0>" + driver : string :: Driver name. Ex. "efile" + port : string :: Port ID. Ex. "#Port<0.1031>" + +

Example:

+

driver_stop: { cpu_id = 5 }, { pid = "[]", driver = "efile", port = "#Port<0.3673>" }

+ +

driver_process_exit

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + + +

driver_ready_async

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + +

Example:

+

driver_ready_async: { cpu_id = 3 }, { pid = "<0.181.0>", port = "#Port<0.3622>", driver = "efile" }

+ +

driver_call

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + command : integer :: Command integer. Ex. 1 + bytes : integer :: Size of data returned. Ex. 82 + +

Example:

+

driver_call: { cpu_id = 2 }, { pid = "<0.202.0>", port = "#Port<0.3676>", driver = "caller_drv", command = 0, bytes = 2 }

+ +

driver_control

+ + pid : string :: Process ID. Ex. "<0.131.0>" + port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile" + command : integer :: Command integer. Ex. 1 + bytes : integer :: Size of data returned. Ex. 82 + +

Example:

+

driver_control: { cpu_id = 3 }, { pid = "<0.32767.8191>", port = "#Port<0.0>", driver = "forker", command = 83, bytes = 32 }

+ +

aio_pool_get

+ + port : string :: Port ID. Ex. "#Port<0.1031>" + length : integer :: Async queue length. Ex. 0 + +

Example:

+

aio_pool_get: { cpu_id = 4 }, { port = "#Port<0.3614>", length = 0 }

+ +

aio_pool_add

+ + port : string :: Port ID. Ex. "#Port<0.1031>" + length : integer :: Async queue length. Ex. -1 + +

Async queue length is not defined for add operations.

+

Example:

+

aio_pool_add: { cpu_id = 3 }, { port = "#Port<0.3614>", length = -1 }

+ +

carrier_create

+ + type : string :: Carrier type. Ex. "ets_alloc" + instance : integer :: Allocator instance. Ex. 1 + size : integer :: Carrier size. Ex. 262144 + mbc_carriers : integer :: Number of multiblock carriers in instance. Ex. 3 + mbc_carriers_size : integer :: Total size of multiblock blocks carriers in instance. Ex. 1343488 + mbc_blocks : integer :: Number of multiblock blocks in instance. Ex. 122 + mbc_blocks_size : integer :: Total size of all multiblock blocks in instance. Ex. 285296 + sbc_carriers : integer :: Number of singleblock carriers in instance. Ex. 1 + sbc_carriers_size : integer :: Total size of singleblock blocks carriers in instance. Ex. 1343488 + sbc_blocks : integer :: Number of singleblocks in instance. Ex. 1 + sbc_blocks_size : integer :: Total size of all singleblock blocks in instance. Ex. 285296 + + +

Example:

+

carrier_create: { cpu_id = 2 }, { type = "ets_alloc", instance = 7, size = 2097152, mbc_carriers = 4, mbc_carriers_size = 3440640, mbc_blocks = 526, mbc_blocks_size = 1278576, sbc_carriers = 0, sbc_carriers_size = 0, sbc_blocks = 0, sbc_blocks_size = 0 }

+ +

carrier_destroy

+ + type : string :: Carrier type. Ex. "ets_alloc" + instance : integer :: Allocator instance. Ex. 1 + size : integer :: Carrier size. Ex. 262144 + mbc_carriers : integer :: Number of multiblock carriers in instance. Ex. 3 + mbc_carriers_size : integer :: Total size of multiblock blocks carriers in instance. Ex. 1343488 + mbc_blocks : integer :: Number of multiblock blocks in instance. Ex. 122 + mbc_blocks_size : integer :: Total size of all multiblock blocks in instance. Ex. 285296 + sbc_carriers : integer :: Number of singleblock carriers in instance. Ex. 1 + sbc_carriers_size : integer :: Total size of singleblock blocks carriers in instance. Ex. 1343488 + sbc_blocks : integer :: Number of singleblocks in instance. Ex. 1 + sbc_blocks_size : integer :: Total size of all singleblock blocks in instance. Ex. 285296 + + +

Example:

+

carrier_destroy: { cpu_id = 6 }, { type = "ets_alloc", instance = 7, size = 262144, mbc_carriers = 3, mbc_carriers_size = 3178496, mbc_blocks = 925, mbc_blocks_size = 2305336, sbc_carriers = 0, sbc_carriers_size = 0, sbc_blocks = 0, sbc_blocks_size = 0 }

+ +

carrier_pool_put

+ + type : string :: Carrier type. Ex. "ets_alloc" + instance : integer :: Allocator instance. Ex. 1 + size : integer :: Carrier size. Ex. 262144 + +

Example:

+

carrier_pool_put: { cpu_id = 3 }, { type = "ets_alloc", instance = 5, size = 1048576 }

+ +

carrier_pool_get

+ + type : string :: Carrier type. Ex. "ets_alloc" + instance : integer :: Allocator instance. Ex. 1 + size : integer :: Carrier size. Ex. 262144 + +

Example:

+

carrier_pool_get: { cpu_id = 7 }, { type = "ets_alloc", instance = 4, size = 3208 }

+ +
+ +
Examples
-- cgit v1.2.3 From 74eafcdaff43d7d84264110066c52fa01e65f159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Mon, 2 May 2016 17:36:33 +0200 Subject: erts: Change argument order for LTTng driver_stop * Be consistent. --- lib/runtime_tools/doc/src/LTTng.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index 57c73469d1..0d970c487b 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -337,11 +337,11 @@ $ make

driver_stop

pid : string :: Process ID. Ex. "<0.131.0>" - driver : string :: Driver name. Ex. "efile" port : string :: Port ID. Ex. "#Port<0.1031>" + driver : string :: Driver name. Ex. "efile"

Example:

-

driver_stop: { cpu_id = 5 }, { pid = "[]", driver = "efile", port = "#Port<0.3673>" }

+

driver_stop: { cpu_id = 5 }, { pid = "[]", port = "#Port<0.3673>", driver = "efile" }

driver_process_exit

-- cgit v1.2.3 From 95194afd63545c7d60e31b5148584f0707034347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Mon, 2 May 2016 17:44:25 +0200 Subject: erts: Rename LTTng tracepoint aio_pool_add to aio_pool_put * Be consistent. --- lib/runtime_tools/doc/src/LTTng.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index 0d970c487b..4a87133c57 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -389,14 +389,14 @@ $ make

Example:

aio_pool_get: { cpu_id = 4 }, { port = "#Port<0.3614>", length = 0 }

-

aio_pool_add

+

aio_pool_put

port : string :: Port ID. Ex. "#Port<0.1031>" length : integer :: Async queue length. Ex. -1 -

Async queue length is not defined for add operations.

+

Async queue length is not defined for put operations.

Example:

-

aio_pool_add: { cpu_id = 3 }, { port = "#Port<0.3614>", length = -1 }

+

aio_pool_put: { cpu_id = 3 }, { port = "#Port<0.3614>", length = -1 }

carrier_create

-- cgit v1.2.3 From bd64ad8e15d66e48b36dbe3584315dd5cfc8b59a Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 11 May 2016 17:22:23 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 72 +++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 57241edbdc..2db8ca17a0 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,78 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.10 + +
Improvements and New Features + + +

+ Add microstate accounting

+

+ Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage area + is to pin point performance bottlenecks by checking which + states the threads are in and then from there figuring + out why and where to optimize.

+

+ Since checking whether microstate accounting is on or off + is relatively expensive only a few of the states are + enabled by default and more states can be enabled through + configure.

+

+ There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting.

+

+ For more information see erlang:statistics(microstate_accounting, + _) and the msacc module in + runtime_tools.

+

+ Own Id: OTP-12345

+
+ +

+ Update dbg and ttb to work with a tracer module as tracer + and tracing on ports.

+

+ Own Id: OTP-13500

+
+ +

+ Updated dbg to accept the new trace options + monotonic_timestamp and + strict_monotonic_timestamp.

+

+ Own Id: OTP-13502

+
+ +

+ Introduce LTTng tracing via Erlang tracing.

+

+ For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng.

+

The dynamic trace module dyntrace is now + capable to be used as a LTTng sink for Erlang tracing. + For a list of all tracepoints, see Runtime Tools User's + Guide .

+

This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and + gc_end has been split into gc_minor_start, + gc_minor_end and gc_major_start, + gc_major_end.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13532

+
+
+
+ +
+
Runtime_Tools 1.9.3
Improvements and New Features -- cgit v1.2.3 From 663e847459686604ea051f036a0e4caff18cea6f Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 12 May 2016 12:04:14 +0200 Subject: Revert "Prepare release" This reverts commit bd64ad8e15d66e48b36dbe3584315dd5cfc8b59a. --- lib/runtime_tools/doc/src/notes.xml | 72 ------------------------------------- 1 file changed, 72 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 2db8ca17a0..57241edbdc 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,78 +32,6 @@

This document describes the changes made to the Runtime_Tools application.

-
Runtime_Tools 1.10 - -
Improvements and New Features - - -

- Add microstate accounting

-

- Microstate accounting is a way to track which state the - different threads within ERTS are in. The main usage area - is to pin point performance bottlenecks by checking which - states the threads are in and then from there figuring - out why and where to optimize.

-

- Since checking whether microstate accounting is on or off - is relatively expensive only a few of the states are - enabled by default and more states can be enabled through - configure.

-

- There is a convinence module called msacc that has been - added to runtime_tools that can assist in gathering and - interpreting the data from Microstate accounting.

-

- For more information see erlang:statistics(microstate_accounting, - _) and the msacc module in - runtime_tools.

-

- Own Id: OTP-12345

-
- -

- Update dbg and ttb to work with a tracer module as tracer - and tracing on ports.

-

- Own Id: OTP-13500

-
- -

- Updated dbg to accept the new trace options - monotonic_timestamp and - strict_monotonic_timestamp.

-

- Own Id: OTP-13502

-
- -

- Introduce LTTng tracing via Erlang tracing.

-

- For LTTng to be enabled OTP needs to be built with - configure option --with-dynamic-trace=lttng.

-

The dynamic trace module dyntrace is now - capable to be used as a LTTng sink for Erlang tracing. - For a list of all tracepoints, see Runtime Tools User's - Guide .

-

This feature also introduces an incompatible change in - trace tags. The trace tags gc_start and - gc_end has been split into gc_minor_start, - gc_minor_end and gc_major_start, - gc_major_end.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13532

-
-
-
- -
-
Runtime_Tools 1.9.3
Improvements and New Features -- cgit v1.2.3 From 01d75ac4b535682a4d531ebd916ee93ff0a69839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Thu, 12 May 2016 18:10:59 +0200 Subject: runtime_tools: Fix tags of LTTng User's Guide --- lib/runtime_tools/doc/src/LTTng.xml | 78 ++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 40 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index 4a87133c57..06152c66d6 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -76,7 +76,7 @@ $ make entry : string :: Code Location. Ex. "lists:sort/1"

Example:

-

process_spawn: { cpu_id = 3 }, { pid = "<0.131.0>", parent = "<0.130.0>", entry = "erlang:apply/2" }

+ process_spawn: { cpu_id = 3 }, { pid = "<0.131.0>", parent = "<0.130.0>", entry = "erlang:apply/2" }

process_link

@@ -85,7 +85,7 @@ $ make type : string :: "link" | "unlink"

Example:

-

process_link: { cpu_id = 3 }, { from = "<0.130.0>", to = "<0.131.0>", type = "link" }

+ process_link: { cpu_id = 3 }, { from = "<0.130.0>", to = "<0.131.0>", type = "link" }

process_exit

@@ -94,7 +94,7 @@ $ make reason : string :: Exit reason. Ex. "normal"

Example:

-

process_exit: { cpu_id = 3 }, { pid = "<0.130.0>", reason = "normal" }

+ process_exit: { cpu_id = 3 }, { pid = "<0.130.0>", reason = "normal" }

process_register

@@ -103,7 +103,7 @@ $ make type : string :: "register" | "unregister"

Example:

-

process_register: { cpu_id = 0 }, { pid = "<0.128.0>", name = "dyntrace_lttng_SUITE" type = "register" }

+ process_register: { cpu_id = 0 }, { pid = "<0.128.0>", name = "dyntrace_lttng_SUITE" type = "register" }

process_scheduled

@@ -113,7 +113,7 @@ $ make

Example:

-

process_scheduled: { cpu_id = 0 }, { pid = "<0.136.0>", entry = "erlang:apply/2", type = "in" }

+ process_scheduled: { cpu_id = 0 }, { pid = "<0.136.0>", entry = "erlang:apply/2", type = "in" }

port_open

@@ -124,7 +124,7 @@ $ make

Example:

-

port_open: { cpu_id = 5 }, { pid = "<0.131.0>", driver = "'/bin/sh -s unix:cmd'", port = "#Port<0.1887>" }

+ port_open: { cpu_id = 5 }, { pid = "<0.131.0>", driver = "'/bin/sh -s unix:cmd'", port = "#Port<0.1887>" }

port_exit

@@ -132,7 +132,7 @@ $ make reason : string :: Exit reason. Ex. "normal"

Example:

-

port_exit: { cpu_id = 5 }, { port = "#Port<0.1887>", reason = "normal" }

+ port_exit: { cpu_id = 5 }, { port = "#Port<0.1887>", reason = "normal" }

port_link

@@ -141,7 +141,7 @@ $ make type : string :: "link" | "unlink"

Example:

-

port_link: { cpu_id = 5 }, { from = "#Port<0.1887>", to = "<0.131.0>", type = "unlink" }

+ port_link: { cpu_id = 5 }, { from = "#Port<0.1887>", to = "<0.131.0>", type = "unlink" }

port_scheduled

@@ -151,7 +151,7 @@ $ make

Example:

-

port_scheduled: { cpu_id = 5 }, { pid = "#Port<0.1905>", entry = "close", type = "out" }

+ port_scheduled: { cpu_id = 5 }, { pid = "#Port<0.1905>", entry = "close", type = "out" }

function_call

@@ -160,7 +160,7 @@ $ make depth : integer :: Stack depth. Ex. 0

Example:

-

function_call: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:'-t_call/1-fun-1-'/0", depth = 0 }

+ function_call: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:'-t_call/1-fun-1-'/0", depth = 0 }

function_return

@@ -169,7 +169,7 @@ $ make depth : integer :: Stack depth. Ex. 0

Example:

-

function_return: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:waiter/0", depth = 0 }

+ function_return: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:waiter/0", depth = 0 }

function_exception

@@ -178,7 +178,7 @@ $ make class : string :: Error reason. Ex. "error"

Example:

-

function_exception: { cpu_id = 5 }, { pid = "<0.144.0>", entry = "t:call_exc/1", class = "error" }

+ function_exception: { cpu_id = 5 }, { pid = "<0.144.0>", entry = "t:call_exc/1", class = "error" }

message_send

@@ -187,7 +187,7 @@ $ make message : string :: Message sent. Ex. "{<0.162.0>,ok}"

Example:

-

message_send: { cpu_id = 3 }, { from = "#Port<0.1938>", to = "<0.160.0>", message = "{#Port<0.1938>,eof}" }

+ message_send: { cpu_id = 3 }, { from = "#Port<0.1938>", to = "<0.160.0>", message = "{#Port<0.1938>,eof}" }

message_receive

@@ -195,7 +195,7 @@ $ make message : string :: Message received. Ex. "{<0.162.0>,ok}"

Example:

-

message_receive: { cpu_id = 7 }, { to = "<0.167.0>", message = "{<0.165.0>,ok}" }

+ message_receive: { cpu_id = 7 }, { to = "<0.167.0>", message = "{<0.165.0>,ok}" }

gc_minor_start

@@ -205,7 +205,7 @@ $ make old_heap : integer :: Old heap word size. Ex. 233

Example:

-

gc_minor_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 0, heap = 610, old_heap = 0 }

+ gc_minor_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 0, heap = 610, old_heap = 0 }

gc_minor_end

@@ -215,7 +215,7 @@ $ make old_heap : integer :: Old heap word size. Ex. 233

Example:

-

gc_minor_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 120, heap = 1598, old_heap = 1598 }

+ gc_minor_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 120, heap = 1598, old_heap = 1598 }

gc_major_start

@@ -225,7 +225,7 @@ $ make old_heap : integer :: Old heap word size. Ex. 233

Example:

-

gc_major_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 8, heap = 2586, old_heap = 1598 }

+ gc_major_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 8, heap = 2586, old_heap = 1598 }

gc_major_end

@@ -235,7 +235,7 @@ $ make old_heap : integer :: Old heap word size. Ex. 233

Example:

-

gc_major_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 240, heap = 4185, old_heap = 0 }

+ gc_major_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 240, heap = 4185, old_heap = 0 }
@@ -250,7 +250,7 @@ $ make runnable : integer :: Runnable. Ex. 1

Example:

-

scheduler_poll: { cpu_id = 4 }, { scheduler = 1, runnable = 1 }

+ scheduler_poll: { cpu_id = 4 }, { scheduler = 1, runnable = 1 }

driver_init

@@ -260,7 +260,7 @@ $ make flags : integer :: Flags. Ex. 1

Example:

-

driver_init: { cpu_id = 2 }, { driver = "caller_drv", major = 3, minor = 3, flags = 1 }

+ driver_init: { cpu_id = 2 }, { driver = "caller_drv", major = 3, minor = 3, flags = 1 }

driver_start

@@ -269,7 +269,7 @@ $ make port : string :: Port ID. Ex. "#Port<0.1031>"

Example:

-

driver_start: { cpu_id = 2 }, { pid = "<0.198.0>", driver = "caller_drv", port = "#Port<0.3676>" }

+ driver_start: { cpu_id = 2 }, { pid = "<0.198.0>", driver = "caller_drv", port = "#Port<0.3676>" }

driver_output

@@ -279,7 +279,7 @@ $ make bytes : integer :: Size of data returned. Ex. 82

Example:

-

driver_output: { cpu_id = 2 }, { pid = "<0.198.0>", port = "#Port<0.3677>", driver = "/bin/sh -s unix:cmd", bytes = 36 }

+ driver_output: { cpu_id = 2 }, { pid = "<0.198.0>", port = "#Port<0.3677>", driver = "/bin/sh -s unix:cmd", bytes = 36 }

driver_outputv

@@ -289,7 +289,7 @@ $ make bytes : integer :: Size of data returned. Ex. 82

Example:

-

driver_outputv: { cpu_id = 5 }, { pid = "<0.194.0>", port = "#Port<0.3663>", driver = "tcp_inet", bytes = 3 }

+ driver_outputv: { cpu_id = 5 }, { pid = "<0.194.0>", port = "#Port<0.3663>", driver = "tcp_inet", bytes = 3 }

driver_ready_input

@@ -298,7 +298,7 @@ $ make driver : string :: Driver name. Ex. "efile"

Example:

-

driver_ready_input: { cpu_id = 5 }, { pid = "<0.189.0>", port = "#Port<0.3637>", driver = "inet_gethost 4 " }

+ driver_ready_input: { cpu_id = 5 }, { pid = "<0.189.0>", port = "#Port<0.3637>", driver = "inet_gethost 4 " }

driver_ready_output

@@ -307,7 +307,7 @@ $ make driver : string :: Driver name. Ex. "efile"

Example:

-

driver_ready_output: { cpu_id = 5 }, { pid = "<0.194.0>", port = "#Port<0.3663>", driver = "tcp_inet" }

+ driver_ready_output: { cpu_id = 5 }, { pid = "<0.194.0>", port = "#Port<0.3663>", driver = "tcp_inet" }

driver_timeout

@@ -316,14 +316,14 @@ $ make driver : string :: Driver name. Ex. "efile"

Example:

-

driver_timeout: { cpu_id = 5 }, { pid = "<0.196.0>", port = "#Port<0.3664>", driver = "tcp_inet" }

+ driver_timeout: { cpu_id = 5 }, { pid = "<0.196.0>", port = "#Port<0.3664>", driver = "tcp_inet" }

driver_stop_select

driver : string :: Driver name. Ex. "efile"

Example:

-

driver_stop_select: { cpu_id = 5 }, { driver = "unknown" }

+ driver_stop_select: { cpu_id = 5 }, { driver = "unknown" }

driver_flush

@@ -332,7 +332,7 @@ $ make driver : string :: Driver name. Ex. "efile"

Example:

-

driver_flush: { cpu_id = 7 }, { pid = "<0.204.0>", port = "#Port<0.3686>", driver = "tcp_inet" }

+ driver_flush: { cpu_id = 7 }, { pid = "<0.204.0>", port = "#Port<0.3686>", driver = "tcp_inet" }

driver_stop

@@ -341,7 +341,7 @@ $ make driver : string :: Driver name. Ex. "efile"

Example:

-

driver_stop: { cpu_id = 5 }, { pid = "[]", port = "#Port<0.3673>", driver = "efile" }

+ driver_stop: { cpu_id = 5 }, { pid = "[]", port = "#Port<0.3673>", driver = "efile" }

driver_process_exit

@@ -357,7 +357,7 @@ $ make driver : string :: Driver name. Ex. "efile"

Example:

-

driver_ready_async: { cpu_id = 3 }, { pid = "<0.181.0>", port = "#Port<0.3622>", driver = "efile" }

+ driver_ready_async: { cpu_id = 3 }, { pid = "<0.181.0>", port = "#Port<0.3622>", driver = "efile" }

driver_call

@@ -368,7 +368,7 @@ $ make bytes : integer :: Size of data returned. Ex. 82

Example:

-

driver_call: { cpu_id = 2 }, { pid = "<0.202.0>", port = "#Port<0.3676>", driver = "caller_drv", command = 0, bytes = 2 }

+ driver_call: { cpu_id = 2 }, { pid = "<0.202.0>", port = "#Port<0.3676>", driver = "caller_drv", command = 0, bytes = 2 }

driver_control

@@ -379,7 +379,7 @@ $ make bytes : integer :: Size of data returned. Ex. 82

Example:

-

driver_control: { cpu_id = 3 }, { pid = "<0.32767.8191>", port = "#Port<0.0>", driver = "forker", command = 83, bytes = 32 }

+ driver_control: { cpu_id = 3 }, { pid = "<0.32767.8191>", port = "#Port<0.0>", driver = "forker", command = 83, bytes = 32 }

aio_pool_get

@@ -387,7 +387,7 @@ $ make length : integer :: Async queue length. Ex. 0

Example:

-

aio_pool_get: { cpu_id = 4 }, { port = "#Port<0.3614>", length = 0 }

+ aio_pool_get: { cpu_id = 4 }, { port = "#Port<0.3614>", length = 0 }

aio_pool_put

@@ -396,7 +396,7 @@ $ make

Async queue length is not defined for put operations.

Example:

-

aio_pool_put: { cpu_id = 3 }, { port = "#Port<0.3614>", length = -1 }

+ aio_pool_put: { cpu_id = 3 }, { port = "#Port<0.3614>", length = -1 }

carrier_create

@@ -414,7 +414,7 @@ $ make

Example:

-

carrier_create: { cpu_id = 2 }, { type = "ets_alloc", instance = 7, size = 2097152, mbc_carriers = 4, mbc_carriers_size = 3440640, mbc_blocks = 526, mbc_blocks_size = 1278576, sbc_carriers = 0, sbc_carriers_size = 0, sbc_blocks = 0, sbc_blocks_size = 0 }

+ carrier_create: { cpu_id = 2 }, { type = "ets_alloc", instance = 7, size = 2097152, mbc_carriers = 4, mbc_carriers_size = 3440640, mbc_blocks = 526, mbc_blocks_size = 1278576, sbc_carriers = 0, sbc_carriers_size = 0, sbc_blocks = 0, sbc_blocks_size = 0 }

carrier_destroy

@@ -432,7 +432,7 @@ $ make

Example:

-

carrier_destroy: { cpu_id = 6 }, { type = "ets_alloc", instance = 7, size = 262144, mbc_carriers = 3, mbc_carriers_size = 3178496, mbc_blocks = 925, mbc_blocks_size = 2305336, sbc_carriers = 0, sbc_carriers_size = 0, sbc_blocks = 0, sbc_blocks_size = 0 }

+ carrier_destroy: { cpu_id = 6 }, { type = "ets_alloc", instance = 7, size = 262144, mbc_carriers = 3, mbc_carriers_size = 3178496, mbc_blocks = 925, mbc_blocks_size = 2305336, sbc_carriers = 0, sbc_carriers_size = 0, sbc_blocks = 0, sbc_blocks_size = 0 }

carrier_pool_put

@@ -441,7 +441,7 @@ $ make size : integer :: Carrier size. Ex. 262144

Example:

-

carrier_pool_put: { cpu_id = 3 }, { type = "ets_alloc", instance = 5, size = 1048576 }

+ carrier_pool_put: { cpu_id = 3 }, { type = "ets_alloc", instance = 5, size = 1048576 }

carrier_pool_get

@@ -450,11 +450,9 @@ $ make size : integer :: Carrier size. Ex. 262144

Example:

-

carrier_pool_get: { cpu_id = 7 }, { type = "ets_alloc", instance = 4, size = 3208 }

- + carrier_pool_get: { cpu_id = 7 }, { type = "ets_alloc", instance = 4, size = 3208 }
-
Examples
-- cgit v1.2.3 From 9fbdf23b7a458120f056320f998e62ccba030990 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Wed, 11 May 2016 18:30:37 +0200 Subject: runtime_tools: Document dbg:tpe/2 and ctpe/1 --- lib/runtime_tools/doc/src/dbg.xml | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 0128e23a47..9664075198 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -438,6 +438,50 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ global calls (and functions).

+ + + + tpe(Event, MatchSpec) -> {ok, MatchDesc} | {error, term()} + Set pattern for traced event + + Event = send | 'receive' + MatchSpec = integer() | Built-inAlias | [] | match_spec() + Built-inAlias = x | c | cx + MatchDesc = [MatchInfo] + MatchInfo = {saved, integer()} | MatchNum + MatchNum = {matched, node(), 1} | {matched, node(), 0, RPCError} + + +

This function associates a match specification with trace event + send or 'receive'. By default all executed send + and 'receive' events are traced if enabled for a process. + A match specification can be used to filter traced events + based on sender, receiver and/or message content.

+

For a description of the match_spec() syntax, + please turn to the User's guide part of the online + documentation for the runtime system (erts). The + chapter Match Specifications in Erlang + explains the general match specification "language".

+

For send, the matching is done on the list [Receiver, Msg]. + Receiver is the process or port identity of the receiver and + Msg is the message term. The pid of the sending process can be + accessed with the guard function self/0.

+

For 'receive', the matching is done on the list [Node, Sender, Msg]. + Node is the node name of the sender. Sender is the + process or port identity of the sender, or the atom + undefined if the sender is not known (which may + be the case for remote senders). Msg is the + message term. The pid of the receiving process can be + accessed with the guard function self/0.

+

All nodes added with n/1 or + tracer/3 will + be affected by this call.

+

The return value is the same as for + tp/2. The number of matched + events are never larger than 1 as tpe/2 does not + accept any form of wildcards for argument Event.

+
+
ctp() Clear call trace pattern for the specified functions @@ -559,6 +603,22 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ tracing set up with tp/2 (not with tpl/2).

+ + ctpe(Event) -> {ok, MatchDesc} | {error, term()} + Clear trace pattern for the specified event + + Event = send | 'receive' + MatchDesc = [MatchNum] + MatchNum = {matched, node(), 1} | {matched, node(), 0, RPCError} + + +

This function clears match specifications for the specified + trace event (send or 'receive'). It will revert back + to the default behavior of tracing all triggered events.

+

The return value follow the same style as for + ctp/1.

+
+
ltp() -> ok List saved and built-in match specifications on the console. -- cgit v1.2.3 From 7467d2de71b4664b3d1c735990182f5ce309c6a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Thu, 12 May 2016 18:41:19 +0200 Subject: runtime_tools: Fix tags of dbg reference manual --- lib/runtime_tools/doc/src/dbg.xml | 155 ++++++++++++++++++++------------------ 1 file changed, 82 insertions(+), 73 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 0128e23a47..103b8b52e9 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -36,8 +36,8 @@ The Text Based Trace Facility

This module implements a text based interface to the - trace/3 and the - trace_pattern/2 BIFs. It makes it + trace/3 and the + trace_pattern/2 BIFs. It makes it possible to trace functions, processes, ports and messages.

@@ -185,7 +185,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ The corresponding process or port is traced. The process or port may be a remote process or port (on another Erlang node). The node must be in the list of traced nodes (see n/1 - and tracer/3). + and tracer/3). all All processes and ports in the system as well as all processes and ports created hereafter are to be traced. @@ -208,22 +208,23 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ atom() The process or port with the corresponding registered name is traced. The process or port may be a remote process (on another Erlang node). The node must be - added with the n/1 or - tracer/3 function. + added with the n/1 or + tracer/3 function. integer() The process ]]> is traced. {X, Y, Z} The process ]]> is traced. - string() - If the Item is a string "]]> - as returned from pid_to_list/1, the process - ]]> is traced. - + string() + If the Item is a string "]]> + as returned from pid_to_list/1, + the process ]]> is traced. + +

When enabling an Item that represents a group of processes, the Item is enabled on all nodes added with the - n/1 or - tracer/3 function.

+ n/1 or + tracer/3 function.

Flags can be a single atom, or a list of flags. The available flags are: @@ -275,7 +276,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This is the same as sol, but only for the first call to - link/1 by the traced process.

+ link/1 by the traced process.

all @@ -288,7 +289,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

The list can also include any of the flags allowed in - erlang:trace/3

+ erlang:trace/3

The function returns either an error tuple or a tuple {ok, List}. The List consists of specifications of how many processes and ports that matched (in the @@ -368,11 +369,11 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ please turn to the User's guide part of the online documentation for the runtime system (erts). The - chapter Match Specifications in Erlang + chapter Match Specifications in Erlang explains the general match specification "language". The most common generic match specifications used can be found as Built-inAlias', see - ltp/0 below for details. + ltp/0 below for details.

The Module, Function and/or Arity parts of the tuple may be specified as the atom '_' which is a "wild-card" @@ -380,21 +381,21 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ Module is specified as '_', the Function and Arity parts have to be specified as '_' too. The same holds for the Functions relation to the Arity.

-

All nodes added with n/1 or - tracer/3 will +

All nodes added with n/1 or + tracer/3 will be affected by this call, and if Module is not '_' the module will be loaded on all nodes.

The function returns either an error tuple or a tuple {ok, List}. The List consists of specifications of how many functions that matched, in the same way as the processes and ports - are presented in the return value of p/2.

+ are presented in the return value of p/2.

There may be a tuple {saved, N} in the return value, if the MatchSpec is other than []. The integer N may then be used in subsequent calls to this function and will stand as an "alias" for the given expression. There are also a couple of - built-in aliases for common expressions, see - ltp/0 below for details.

+ built-in aliases for common expressions, see + ltp/0 below for details.

If an error is returned, it can be due to errors in compilation of the match specification. Such errors are presented as a list of tuples {error, string()} where @@ -433,7 +434,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ tpl({Module, Function, Arity}, MatchSpec) -> {ok, MatchDesc} | {error, term()} Set pattern for traced local (as well as global) function calls -

This function works as tp/2, but enables +

This function works as tp/2, but enables tracing for local calls (and local functions) as well as for global calls (and functions).

@@ -480,10 +481,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function disables call tracing on the specified functions. The semantics of the parameter is the same as for the corresponding function specification in - tp/2 or tpl/2. Both local and global call trace + tp/2 or tpl/2. Both local and global call trace is disabled.

The return value reflects how many functions that matched, - and is constructed as described in tp/2. No tuple + and is constructed as described in tp/2. No tuple {saved, N} is however ever returned (for obvious reasons).

@@ -519,8 +520,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ ctpl({Module, Function, Arity}) -> {ok, MatchDesc} | {error, term()} Clear call trace pattern for the specified functions -

This function works as ctp/1, but only disables - tracing set up with tpl/2 (not with tp/2).

+

This function works as ctp/1, but only disables + tracing set up with tpl/2 + (not with tp/2).

@@ -555,8 +557,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ ctpg({Module, Function, Arity}) -> {ok, MatchDesc} | {error, term()} Clear call trace pattern for the specified functions -

This function works as ctp/1, but only disables - tracing set up with tp/2 (not with tpl/2).

+

This function works as ctp/1, but only disables + tracing set up with tp/2 + (not with tpl/2).

@@ -565,13 +568,14 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Use this function to recall all match specifications previously used in the session (i. e. previously saved during calls - to tp/2, and built-in match specifications. + to tp/2, and built-in match specifications. This is very useful, as a complicated match_spec can be quite awkward to write. Note that the - match specifications are lost if stop/0 is called.

+ match specifications are lost if stop/0 is called.

Match specifications used can be saved in a file (if a read-write file system is present) for use in later - debugging sessions, see wtp/1 and rtp/1

+ debugging sessions, see wtp/1 + and rtp/1

There are three built-in trace patterns: exception_trace, caller_trace and caller_exception_trace (or x, c and @@ -594,10 +598,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ Delete all saved match specifications.

Use this function to "forget" all match specifications - saved during calls to tp/2. - This is useful when one wants to restore other match - specifications from a file with rtp/1. Use - dtp/1 to delete specific saved match specifications.

+ saved during calls to tp/2. + This is useful when one wants to restore other match + specifications from a file with rtp/1. Use + dtp/1 to delete specific saved match specifications.

@@ -608,7 +612,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Use this function to "forget" a specific match specification - saved during calls to tp/2.

+ saved during calls to tp/2.

@@ -620,12 +624,12 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function will save all match specifications saved - during the session (during calls to tp/2) + during the session (during calls to tp/2) and built-in match specifications in a text file with the name designated by Name. The format of the file is textual, why it can be edited with an ordinary text editor, and then restored with - rtp/1.

+ rtp/1.

Each match spec in the file ends with a full stop (.) and new (syntactically correct) match specifications can be added to the file manually.

@@ -643,7 +647,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function reads match specifications from a file - (possibly) generated by the wtp/1 function. It checks + (possibly) generated by the wtp/1 + function. It checks the syntax of all match specifications and verifies that they are correct. The error handling principle is "all or nothing", i. e. if some of the match specifications are @@ -651,7 +656,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ saved match specifications for the running system.

The match specifications in the file are merged with the current match specifications, so that no duplicates - are generated. Use ltp/0 to see what numbers were + are generated. Use ltp/0 + to see what numbers were assigned to the specifications from the file.

The function will return an error, either due to I/O problems (like a non existing or non readable file) or due @@ -670,9 +676,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

The dbg server keeps a list of nodes where tracing - should be performed. Whenever a tp/2 call or a - p/2 call is made, it is executed for all nodes in this - list including the local node (except for p/2 with a + should be performed. Whenever a tp/2 call or a + p/2 call is made, it is executed for all nodes in this + list including the local node (except for p/2 with a specific pid() or port() as first argument, in which case the command is executed only on the node where the designated process or port resides). @@ -684,7 +690,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ distribution). If no tracer process is running on the local node, the error reason no_local_tracer is returned. The tracer process on the local node must be started with the - tracer/0/2 function. + tracer/0/2 function.

If Nodename is the local node, the error reason cant_add_local_node is returned. @@ -694,7 +700,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ a tracer process. The error reason cant_trace_remote_pid_to_local_port is returned. A trace port can however be started on the remote node with the - tracer/3 function. + tracer/3 function.

The function will also return an error if the node Nodename is not reachable.

@@ -708,9 +714,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

Clears a node from the list of traced nodes. Subsequent - calls to tp/2 and p/2 will not consider that - node, but tracing already activated on the node will continue - to be in effect.

+ calls to tp/2 and + p/2 will not consider that + node, but tracing already activated on the node will continue + to be in effect.

Returns ok, cannot fail.

@@ -727,14 +734,14 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function starts a server on the local node that will be the recipient of all trace messages. All subsequent calls - to p/2 will result in messages sent to the newly + to p/2 will result in messages sent to the newly started trace server.

A trace server started in this way will simply display the trace messages in a formatted way in the Erlang shell - (i. e. use io:format). See tracer/2 for a description - of how the trace message handler can be customized. + (i. e. use io:format). See tracer/2 + for a description of how the trace message handler can be customized.

-

To start a similar tracer on a remote node, use n/1.

+

To start a similar tracer on a remote node, use n/1.

@@ -758,9 +765,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ by a receiving process (process), by a tracer port (port) or by a tracer module (module). For a description about tracer ports see - trace_port/2 + trace_port/2 and for a tracer modules see - erl_tracer. + erl_tracer.

If Type is process, a message handler function can be specified (HandlerSpec). The handler function, which @@ -776,10 +783,10 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

If Type is port, then the second parameter should be a fun which takes no arguments and returns a newly opened trace port when called. Such a fun is - preferably generated by calling trace_port/2. + preferably generated by calling trace_port/2.

if Type is module, then the second parameter should - be either a tuple describing the erl_tracer + be either a tuple describing the erl_tracer module to be used for tracing and the state to be used for that tracer module or a fun returning the same tuple.

If an error is returned, it can either be due to a tracer @@ -787,7 +794,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ due to the HandlerFun throwing an exception.

To start a similar tracer on a remote node, use - tracer/3. + tracer/3.

@@ -798,19 +805,19 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ Nodename = atom() -

This function is equivalent to tracer/2, but acts on +

This function is equivalent to tracer/2, but acts on the given node. A tracer is started on the node (Nodename) and the node is added to the list of traced nodes.

-

This function is not equivalent to n/1. While - n/1 starts a process tracer which redirects all trace +

This function is not equivalent to n/1. While + n/1 starts a process tracer which redirects all trace information to a process tracer on the local node (i.e. the - trace control node), tracer/3 starts a tracer of any + trace control node), tracer/3 starts a tracer of any type which is independent of the tracer on the trace control node.

-

For details, see tracer/2.

+

For details, see tracer/2.

@@ -842,9 +849,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ file and the ip trace drivers. The file driver sends all trace messages into one or several binary files, from where they later can be fetched and processed with the - trace_client/2 function. The ip driver opens a TCP/IP + trace_client/2 function. The ip driver opens a TCP/IP port where it listens for connections. When a client - (preferably started by calling trace_client/2 on + (preferably started by calling trace_client/2 on another Erlang node) connects, all trace messages are sent over the IP network for further processing by the remote client.

@@ -883,7 +890,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ as fast as they are produced by the runtime system, a special message is sent, which indicates how many messages that are dropped. That message will arrive at the handler function - specified in trace_client/3 as the tuple {drop, N} where N is the number of consecutive messages + specified in trace_client/3 + as the tuple {drop, N} where N is the number of consecutive messages dropped. In case of heavy tracing, drop's are likely to occur, and they surely occur if no client is reading the trace messages.

@@ -960,8 +968,8 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

This function starts a trace client that reads the output created by a trace port driver and handles it in mostly the - same way as a tracer process created by the tracer/0 - function.

+ same way as a tracer process created by the + tracer/0 function.

If Type is file, the client reads all trace messages stored in the file named Filename or specified by WrapFilesSpec (must be the same as used @@ -972,7 +980,7 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\

If Type is follow_file, the client behaves as in the file case, but keeps trying to read (and process) more data - from the file until stopped by stop_trace_client/1. + from the file until stopped by stop_trace_client/1. WrapFilesSpec is not allowed as second argument for this Type.

If Type is ip, the client connects to the @@ -1028,10 +1036,10 @@ hello InitialData = term() -

This function works exactly as trace_client/2, but - allows you to write your own handler function. The handler +

This function works exactly as trace_client/2, + but allows you to write your own handler function. The handler function works mostly as the one described in - tracer/2, but will also have to be prepared to handle + tracer/2, but will also have to be prepared to handle trace messages of the form {drop, N}, where N is the number of dropped messages. This pseudo trace message will only occur if the ip trace driver is used.

@@ -1050,7 +1058,8 @@ hello

This function shuts down a previously started trace client. The Pid argument is the process id returned - from the trace_client/2 or trace_client/3 call.

+ from the trace_client/2 + or trace_client/3 call.

@@ -1203,7 +1212,7 @@ SeqTrace [0]: (<0.30.0>) <0.25.0> ! {dbg,{ok,<0.31.0>}} [Serial: {4,5}] of causing a deadlock. This will happen if a group leader process generates a trace message and the tracer process, by calling the trace handler function, sends an IO request to the same group leader. The problem can only occur if the trace handler - prints to tty using an io function such as format/2. + prints to tty using an io function such as format/2. Note that when dbg:p(all,call) is called, IO processes are also traced. Here's an example:

-- cgit v1.2.3 From 21376b80ebfc783f5301f36db0a967c5640446cf Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Thu, 19 May 2016 11:17:32 +0200 Subject: runtime_tools: Fix documentation for dbg:p --- lib/runtime_tools/doc/src/dbg.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/dbg.xml b/lib/runtime_tools/doc/src/dbg.xml index 49b11ddc3c..14a81b2293 100644 --- a/lib/runtime_tools/doc/src/dbg.xml +++ b/lib/runtime_tools/doc/src/dbg.xml @@ -189,9 +189,9 @@ Error: fun containing local erlang function calls ('is_atomm' called in guard)\ all All processes and ports in the system as well as all processes and ports created hereafter are to be traced. - all_processes + processes All processes in the system as well as all processes created hereafter are to be traced. - all_ports + ports All ports in the system as well as all ports created hereafter are to be traced. new All processes and ports created after the call is are to be traced. -- cgit v1.2.3 From f74f4c8b5f65b1cd75b2dc91b94666fa65a9032a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Thu, 26 May 2016 17:44:52 +0200 Subject: runtime_tools: Document a lttng usage example --- lib/runtime_tools/doc/src/LTTng.xml | 144 +++++++++++++++++++++++++++++++++++- 1 file changed, 140 insertions(+), 4 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index 06152c66d6..9b490a27a0 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -75,6 +75,10 @@ $ make parent : string :: Process ID. Ex. "<0.131.0>" entry : string :: Code Location. Ex. "lists:sort/1" +

+ Available through + erlang:trace/3 with trace flag procs and {tracer,dyntrace,[]} as tracer module. +

Example:

process_spawn: { cpu_id = 3 }, { pid = "<0.131.0>", parent = "<0.130.0>", entry = "erlang:apply/2" } @@ -84,6 +88,10 @@ $ make from : string :: Process ID or Port ID. Ex. "<0.131.0>" type : string :: "link" | "unlink" +

+ Available through + erlang:trace/3 with trace flag procs and {tracer,dyntrace,[]} as tracer module. +

Example:

process_link: { cpu_id = 3 }, { from = "<0.130.0>", to = "<0.131.0>", type = "link" } @@ -93,6 +101,10 @@ $ make pid : string :: Process ID. Ex. "<0.131.0>" reason : string :: Exit reason. Ex. "normal" +

+ Available through + erlang:trace/3 with trace flag procs and {tracer,dyntrace,[]} as tracer module. +

Example:

process_exit: { cpu_id = 3 }, { pid = "<0.130.0>", reason = "normal" } @@ -111,7 +123,10 @@ $ make entry : string :: Code Location. Ex. "lists:sort/1" type : string :: "in" | "out" | "in_exiting" | "out_exiting" | "out_exited" - +

+ Available through + erlang:trace/3 with trace flag running and {tracer,dyntrace,[]} as tracer module. +

Example:

process_scheduled: { cpu_id = 0 }, { pid = "<0.136.0>", entry = "erlang:apply/2", type = "in" } @@ -122,7 +137,10 @@ $ make driver : string :: Driver name. Ex. "efile" port : string :: Port ID. Ex. "#Port<0.1031>" - +

+ Available through + erlang:trace/3 with trace flag ports and {tracer,dyntrace,[]} as tracer module. +

Example:

port_open: { cpu_id = 5 }, { pid = "<0.131.0>", driver = "'/bin/sh -s unix:cmd'", port = "#Port<0.1887>" } @@ -131,6 +149,10 @@ $ make port : string :: Port ID. Ex. "#Port<0.1031>" reason : string :: Exit reason. Ex. "normal" +

+ Available through + erlang:trace/3 with trace flag ports and {tracer,dyntrace,[]} as tracer module. +

Example:

port_exit: { cpu_id = 5 }, { port = "#Port<0.1887>", reason = "normal" } @@ -140,10 +162,18 @@ $ make from : string :: Process ID. Ex. "<0.131.0>" type : string :: "link" | "unlink" +

+ Available through + erlang:trace/3 with trace flag ports and {tracer,dyntrace,[]} as tracer module. +

Example:

port_link: { cpu_id = 5 }, { from = "#Port<0.1887>", to = "<0.131.0>", type = "unlink" }

port_scheduled

+

+ Available through + erlang:trace/3 with trace flag running and {tracer,dyntrace,[]} as tracer module. +

port : string :: Port ID. Ex. "#Port<0.1031>" entry : string :: Callback. Ex. "open" @@ -152,13 +182,20 @@ $ make

Example:

port_scheduled: { cpu_id = 5 }, { pid = "#Port<0.1905>", entry = "close", type = "out" } - +

+ Available through + erlang:trace/3 with trace flag running and {tracer,dyntrace,[]} as tracer module. +

function_call

pid : string :: Process ID. Ex. "<0.131.0>" entry : string :: Code Location. Ex. "lists:sort/1" depth : integer :: Stack depth. Ex. 0 +

+ Available through + erlang:trace/3 with trace flag call and {tracer,dyntrace,[]} as tracer module. +

Example:

function_call: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:'-t_call/1-fun-1-'/0", depth = 0 } @@ -168,6 +205,10 @@ $ make entry : string :: Code Location. Ex. "lists:sort/1" depth : integer :: Stack depth. Ex. 0
+

+ Available through + erlang:trace/3 with trace flag call or return_to and {tracer,dyntrace,[]} as tracer module. +

Example:

function_return: { cpu_id = 5 }, { pid = "<0.145.0>", entry = "dyntrace_lttng_SUITE:waiter/0", depth = 0 } @@ -177,6 +218,10 @@ $ make entry : string :: Code Location. Ex. "lists:sort/1" class : string :: Error reason. Ex. "error" +

+ Available through + erlang:trace/3 with trace flag call and {tracer,dyntrace,[]} as tracer module. +

Example:

function_exception: { cpu_id = 5 }, { pid = "<0.144.0>", entry = "t:call_exc/1", class = "error" } @@ -186,6 +231,10 @@ $ make to : string :: Process ID or Port ID. Ex. "<0.131.0>" message : string :: Message sent. Ex. "{<0.162.0>,ok}" +

+ Available through + erlang:trace/3 with trace flag send and {tracer,dyntrace,[]} as tracer module. +

Example:

message_send: { cpu_id = 3 }, { from = "#Port<0.1938>", to = "<0.160.0>", message = "{#Port<0.1938>,eof}" } @@ -194,6 +243,10 @@ $ make to : string :: Process ID or Port ID. Ex. "<0.131.0>" message : string :: Message received. Ex. "{<0.162.0>,ok}" +

+ Available through + erlang:trace/3 with trace flag 'receive' and {tracer,dyntrace,[]} as tracer module. +

Example:

message_receive: { cpu_id = 7 }, { to = "<0.167.0>", message = "{<0.165.0>,ok}" } @@ -204,6 +257,10 @@ $ make heap : integer :: Young heap word size. Ex. 233 old_heap : integer :: Old heap word size. Ex. 233 +

+ Available through + erlang:trace/3 with trace flag garbage_collection and {tracer,dyntrace,[]} as tracer module. +

Example:

gc_minor_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 0, heap = 610, old_heap = 0 } @@ -214,6 +271,10 @@ $ make heap : integer :: Young heap word size. Ex. 233 old_heap : integer :: Old heap word size. Ex. 233 +

+ Available through + erlang:trace/3 with trace flag garbage_collection and {tracer,dyntrace,[]} as tracer module. +

Example:

gc_minor_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 120, heap = 1598, old_heap = 1598 } @@ -224,6 +285,10 @@ $ make heap : integer :: Young heap word size. Ex. 233 old_heap : integer :: Old heap word size. Ex. 233 +

+ Available through + erlang:trace/3 with trace flag garbage_collection and {tracer,dyntrace,[]} as tracer module. +

Example:

gc_major_start: { cpu_id = 0 }, { pid = "<0.172.0>", need = 8, heap = 2586, old_heap = 1598 } @@ -234,6 +299,10 @@ $ make heap : integer :: Young heap word size. Ex. 233 old_heap : integer :: Old heap word size. Ex. 233 +

+ Available through + erlang:trace/3 with trace flag garbage_collection and {tracer,dyntrace,[]} as tracer module. +

Example:

gc_major_end: { cpu_id = 0 }, { pid = "<0.172.0>", reclaimed = 240, heap = 4185, old_heap = 0 } @@ -454,6 +523,73 @@ $ make
- Examples + Example of process tracing +

An example of process tracing of os_mon and friends.

+ +

Clean start of lttng in a bash shell.

+ +
$ lttng create erlang-demo
+Spawning a session daemon
+Session erlang-demo created.
+Traces will be written in /home/egil/lttng-traces/erlang-demo-20160526-165920
+ +

Start an Erlang node with lttng enabled.

+ +
$ erl
+Erlang/OTP 19 [erts-8.0] [source-4d7b24d] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [lttng]
+
+Eshell V8.0  (abort with ^G)
+1>
+ +

Load the dyntrace module.

+ +
1> l(dyntrace).
+{module,dyntrace}
+ +

All tracepoints via dyntrace are now visibile and can be listed through lttng list -u.

+ +

Enable the process_register LTTng tracepoint for Erlang.

+ +
$ lttng enable-event -u com_ericsson_dyntrace:process_register
+UST event com_ericsson_dyntrace:process_register created in channel channel0
+ +

Enable process tracing for new processes and use dyntrace as tracer backend.

+ +
2> erlang:trace(new,true,[procs,{tracer,dyntrace,[]}]).
+0
+ +

Start LTTng tracing.

+ +
$ lttng start
+Tracing started for session erlang-demo
+ +

Start the os_mon application in Erlang.

+ +
3> application:ensure_all_started(os_mon).
+{ok,[sasl,os_mon]}
+ +

Stop LTTng tracing and view the result.

+ +
$ lttng stop
+Tracing stopped for session erlang-demo
+$ lttng view
+[17:20:42.561168759] (+?.?????????) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.66.0>", name = "sasl_sup", type = "register" }
+[17:20:42.561215519] (+0.000046760) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.67.0>", name = "sasl_safe_sup", type = "register" }
+[17:20:42.562149024] (+0.000933505) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.68.0>", name = "alarm_handler", type = "register" }
+[17:20:42.571035803] (+0.008886779) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.69.0>", name = "release_handler", type = "register" }
+[17:20:42.574939868] (+0.003904065) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.74.0>", name = "os_mon_sup", type = "register" }
+[17:20:42.576818712] (+0.001878844) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.75.0>", name = "disksup", type = "register" }
+[17:20:42.580032013] (+0.003213301) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.76.0>", name = "memsup", type = "register" }
+[17:20:42.583046339] (+0.003014326) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.78.0>", name = "cpu_sup", type = "register" }
+[17:20:42.586206242] (+0.003159903) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+    { cpu_id = 5 }, { pid = "<0.82.0>", name = "timer_server", type = "register" }
-- cgit v1.2.3 From e020f75c10410a6943cd055bfa072a2641eab7da Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 2 Jun 2016 10:55:26 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 94 +++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 57241edbdc..dcc59c9648 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,100 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.10 + +
Fixed Bugs and Malfunctions + + +

+ Fix bug in dbg:trace_port/2 that could cause the trace ip + driver to produce faulty error reports "...(re)selected + before stop_select was called for driver trace_ip_drv".

+

+ Own Id: OTP-13576 Aux Id: ERL-119

+
+
+
+ + +
Improvements and New Features + + +

+ Add microstate accounting

+

+ Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage area + is to pin point performance bottlenecks by checking which + states the threads are in and then from there figuring + out why and where to optimize.

+

+ Since checking whether microstate accounting is on or off + is relatively expensive only a few of the states are + enabled by default and more states can be enabled through + configure.

+

+ There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting.

+

+ For more information see erlang:statistics(microstate_accounting, + _) and the msacc module in + runtime_tools.

+

+ Own Id: OTP-12345

+
+ +

+ Update observer GUI to support tracing on ports, and to + set matchspecs for send/receive. This required some minor + bugfixes in runtime_tools/dbg.

+

+ Own Id: OTP-13481

+
+ +

+ Update dbg and ttb to work with a tracer module as tracer + and tracing on ports.

+

+ Own Id: OTP-13500

+
+ +

+ Updated dbg to accept the new trace options + monotonic_timestamp and + strict_monotonic_timestamp.

+

+ Own Id: OTP-13502

+
+ +

+ Introduce LTTng tracing via Erlang tracing.

+

+ For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng.

+

The dynamic trace module dyntrace is now + capable to be used as a LTTng sink for Erlang tracing. + For a list of all tracepoints, see Runtime Tools User's + Guide .

+

This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and + gc_end has been split into gc_minor_start, + gc_minor_end and gc_major_start, + gc_major_end.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13532

+
+
+
+ +
+
Runtime_Tools 1.9.3
Improvements and New Features -- cgit v1.2.3 From c04cad3ba921deb086d19e2de2526af4854add75 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 2 Jun 2016 11:39:07 +0200 Subject: Revert "Prepare release" This reverts commit e020f75c10410a6943cd055bfa072a2641eab7da. --- lib/runtime_tools/doc/src/notes.xml | 94 ------------------------------------- 1 file changed, 94 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index dcc59c9648..57241edbdc 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,100 +32,6 @@

This document describes the changes made to the Runtime_Tools application.

-
Runtime_Tools 1.10 - -
Fixed Bugs and Malfunctions - - -

- Fix bug in dbg:trace_port/2 that could cause the trace ip - driver to produce faulty error reports "...(re)selected - before stop_select was called for driver trace_ip_drv".

-

- Own Id: OTP-13576 Aux Id: ERL-119

-
-
-
- - -
Improvements and New Features - - -

- Add microstate accounting

-

- Microstate accounting is a way to track which state the - different threads within ERTS are in. The main usage area - is to pin point performance bottlenecks by checking which - states the threads are in and then from there figuring - out why and where to optimize.

-

- Since checking whether microstate accounting is on or off - is relatively expensive only a few of the states are - enabled by default and more states can be enabled through - configure.

-

- There is a convinence module called msacc that has been - added to runtime_tools that can assist in gathering and - interpreting the data from Microstate accounting.

-

- For more information see erlang:statistics(microstate_accounting, - _) and the msacc module in - runtime_tools.

-

- Own Id: OTP-12345

-
- -

- Update observer GUI to support tracing on ports, and to - set matchspecs for send/receive. This required some minor - bugfixes in runtime_tools/dbg.

-

- Own Id: OTP-13481

-
- -

- Update dbg and ttb to work with a tracer module as tracer - and tracing on ports.

-

- Own Id: OTP-13500

-
- -

- Updated dbg to accept the new trace options - monotonic_timestamp and - strict_monotonic_timestamp.

-

- Own Id: OTP-13502

-
- -

- Introduce LTTng tracing via Erlang tracing.

-

- For LTTng to be enabled OTP needs to be built with - configure option --with-dynamic-trace=lttng.

-

The dynamic trace module dyntrace is now - capable to be used as a LTTng sink for Erlang tracing. - For a list of all tracepoints, see Runtime Tools User's - Guide .

-

This feature also introduces an incompatible change in - trace tags. The trace tags gc_start and - gc_end has been split into gc_minor_start, - gc_minor_end and gc_major_start, - gc_major_end.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13532

-
-
-
- -
-
Runtime_Tools 1.9.3
Improvements and New Features -- cgit v1.2.3 From 1a26eefb07de7d6152543b252507d618ed844368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Wed, 8 Jun 2016 14:38:27 +0200 Subject: erts: Change LTTng otp domain From 'com_ericsson_otp' to 'org_erlang_otp'. This domain name is more suitable. --- lib/runtime_tools/doc/src/LTTng.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index 9b490a27a0..4941dd53f7 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -310,7 +310,7 @@ $ make
BEAM Tracepoints -

All tracepoints are in the domain of com_ericsson_otp

+

All tracepoints are in the domain of org_erlang_otp

All Erlang types are the string equivalent in LTTng.

scheduler_poll

-- cgit v1.2.3 From 14da65f27d5eb714630dfdc0086d50a6a44bac1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Wed, 8 Jun 2016 14:44:23 +0200 Subject: runtime_tools: Change LTTng dyntrace domain From 'com_ericsson_dyntrace' to 'org_erlang_dyntrace'. This domain name is more suitable. --- lib/runtime_tools/doc/src/LTTng.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/LTTng.xml b/lib/runtime_tools/doc/src/LTTng.xml index 4941dd53f7..82a4c79379 100644 --- a/lib/runtime_tools/doc/src/LTTng.xml +++ b/lib/runtime_tools/doc/src/LTTng.xml @@ -66,7 +66,7 @@ $ make
Dyntrace Tracepoints -

All tracepoints are in the domain of com_ericsson_dyntrace

+

All tracepoints are in the domain of org_erlang_dyntrace

All Erlang types are the string equivalent in LTTng.

process_spawn

@@ -550,8 +550,8 @@ Eshell V8.0 (abort with ^G)

Enable the process_register LTTng tracepoint for Erlang.

-
$ lttng enable-event -u com_ericsson_dyntrace:process_register
-UST event com_ericsson_dyntrace:process_register created in channel channel0
+
$ lttng enable-event -u org_erlang_dyntrace:process_register
+UST event org_erlang_dyntrace:process_register created in channel channel0

Enable process tracing for new processes and use dyntrace as tracer backend.

@@ -573,23 +573,23 @@ Tracing started for session erlang-demo
$ lttng stop
 Tracing stopped for session erlang-demo
 $ lttng view
-[17:20:42.561168759] (+?.?????????) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.561168759] (+?.?????????) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.66.0>", name = "sasl_sup", type = "register" }
-[17:20:42.561215519] (+0.000046760) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.561215519] (+0.000046760) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.67.0>", name = "sasl_safe_sup", type = "register" }
-[17:20:42.562149024] (+0.000933505) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.562149024] (+0.000933505) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.68.0>", name = "alarm_handler", type = "register" }
-[17:20:42.571035803] (+0.008886779) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.571035803] (+0.008886779) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.69.0>", name = "release_handler", type = "register" }
-[17:20:42.574939868] (+0.003904065) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.574939868] (+0.003904065) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.74.0>", name = "os_mon_sup", type = "register" }
-[17:20:42.576818712] (+0.001878844) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.576818712] (+0.001878844) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.75.0>", name = "disksup", type = "register" }
-[17:20:42.580032013] (+0.003213301) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.580032013] (+0.003213301) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.76.0>", name = "memsup", type = "register" }
-[17:20:42.583046339] (+0.003014326) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.583046339] (+0.003014326) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.78.0>", name = "cpu_sup", type = "register" }
-[17:20:42.586206242] (+0.003159903) elxd1168lx9 com_ericsson_dyntrace:process_register: \
+[17:20:42.586206242] (+0.003159903) elxd1168lx9 org_erlang_dyntrace:process_register: \
     { cpu_id = 5 }, { pid = "<0.82.0>", name = "timer_server", type = "register" }
-- cgit v1.2.3 From 6e51c6d19612d03abc81b86bb70b8d7da678ce5d Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 21 Jun 2016 15:12:41 +0200 Subject: Prepare release --- lib/runtime_tools/doc/src/notes.xml | 94 +++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) (limited to 'lib/runtime_tools/doc/src') diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index 57241edbdc..6bec7cb9ca 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -32,6 +32,100 @@

This document describes the changes made to the Runtime_Tools application.

+
Runtime_Tools 1.10 + +
Fixed Bugs and Malfunctions + + +

+ Fix bug in dbg:trace_port/2 that could cause the trace ip + driver to produce faulty error reports "...(re)selected + before stop_select was called for driver trace_ip_drv".

+

+ Own Id: OTP-13576 Aux Id: ERL-119

+
+
+
+ + +
Improvements and New Features + + +

+ Add microstate accounting

+

+ Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage area + is to pin point performance bottlenecks by checking which + states the threads are in and then from there figuring + out why and where to optimize.

+

+ Since checking whether microstate accounting is on or off + is relatively expensive only a few of the states are + enabled by default and more states can be enabled through + configure.

+

+ There is a convenience module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting.

+

+ For more information see erlang:statistics(microstate_accounting, + _) and the msacc module in + runtime_tools.

+

+ Own Id: OTP-12345

+
+ +

+ Update observer GUI to support tracing on ports, and to + set matchspecs for send/receive. This required some minor + bugfixes in runtime_tools/dbg.

+

+ Own Id: OTP-13481

+
+ +

+ Update dbg and ttb to work with a tracer module as tracer + and tracing on ports.

+

+ Own Id: OTP-13500

+
+ +

+ Updated dbg to accept the new trace options + monotonic_timestamp and + strict_monotonic_timestamp.

+

+ Own Id: OTP-13502

+
+ +

+ Introduce LTTng tracing via Erlang tracing.

+

+ For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng.

+

The dynamic trace module dyntrace is now + capable to be used as a LTTng sink for Erlang tracing. + For a list of all tracepoints, see Runtime Tools User's + Guide .

+

This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and + gc_end has been split into gc_minor_start, + gc_minor_end and gc_major_start, + gc_major_end.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13532

+
+
+
+ +
+
Runtime_Tools 1.9.3
Improvements and New Features -- cgit v1.2.3