aboutsummaryrefslogtreecommitdiffstats
path: root/lib/observer/src/crashdump_viewer.erl
AgeCommit message (Collapse)Author
2018-11-27Merge branch 'siri/cdv/div-bugfixes/OTP-15391' into maintSiri Hansen
* siri/cdv/div-bugfixes/OTP-15391: [cdv] Handle multiple "Yc" lines refering to the same refc binary [cdv] Speed up reading of dump with many processes
2018-11-27Merge branch 'siri/cdv/truncated-literals/OTP-15377' into maintSiri Hansen
* siri/cdv/truncated-literals/OTP-15377: [cdv] Fix handling of truncated literals
2018-11-06Implement a tab for persistent terms in crashdump viewerBjörn Gustavsson
Co-authored-by: Siri Hansen <[email protected]>
2018-10-29[cdv] Handle multiple "Yc" lines refering to the same refc binarySiri Hansen
Usually, sub binaries are implemented as special sub binary terms ("Ys" lines). But if a sub binary is sent to another process, sub binaries will be eliminated and incorporated into the ProcBin ("Yc" line), and when that happens there can be several "Yc" lines that refer to the same underlying binary object. Make sure that that the crash dump viewer can handle multiple "Yc" lines referring to the same binary object.
2018-10-29[cdv] Speed up reading of dump with many processesSiri Hansen
Eliminate an ets:select per process, which was used for reading position data needed for progress reporting. Now this data is stored in dictionary along with the last tag and id instead.
2018-10-25[cdv] Fix handling of truncated literalsSiri Hansen
2018-10-22Eliminate crash in crashdump_viewer reading some literal mapsBjörn Gustavsson
Literal maps with complex keys such as: #{"one"=>1,"two"=>2,"three"=>3,"four"=>4}. would produce a crash dump that `crashdump_viewer` was unable to read. https://bugs.erlang.org/browse/ERL-722
2018-06-18Update copyright yearHenrik Nord
2018-02-22Merge 'sverker/erts/more-crash-dump-info/OTP-14820'Sverker Eriksson
2018-02-22erts,observer: Add port-suspended pids to crash dumpSverker Eriksson
2018-02-22erts,observer: Add port states and flags to crash dumpSverker Eriksson
2018-02-20erts,observer: Add dirty schedulers to crash dumpSverker Eriksson
2018-02-20observer: Refactor get_schedulerinfo1Sverker Eriksson
to prepare for dirty schedulers with common run queues
2018-02-20erts,observer: Add more port info to crash dumpSverker Eriksson
2018-02-20erts: Add binary vheap sizes to crash dumpSverker Eriksson
2018-01-12Merge branch 'maint'Siri Hansen
Conflicts: lib/observer/src/crashdump_viewer.erl
2018-01-10[observer] Improve performance for many links or monitorsSiri Hansen
When a process has many links and/or monitors, it could earlier take very long time to display the process information window. This is now improved by only showing a few links and monitors, and then an link named "more..." to expand the rest. Reading of the "Link list" from a crashdump is also improved.
2018-01-09Merge branch 'maint'Siri Hansen
2018-01-03[cdv] Don't crash when dump is truncated in module attributesSiri Hansen
This bug was introduced by commit 3b964e8dbaa0cd73ca7a983b3ce948e0dbd2c35c
2017-11-24Merge branch 'maint'Björn Gustavsson
* maint: Use base64 encoding in crash dumps Correct parsing of sub binaries Generalize passing of options for decoding
2017-11-21Use base64 encoding in crash dumpsBjörn Gustavsson
This will reduce the size of crash dumps, especially if there are large binaries.
2017-11-21Correct parsing of sub binariesBjörn Gustavsson
Correct several problems parsing sub binaries. A sub binary would often be replaced with '#CDVNonexistingBinary'. When parsing a sub binary, we must scan ahead to find the definition of the refc or heap binary being referenced.
2017-11-20Generalize passing of options for decodingBjörn Gustavsson
The functions that decode Erlang terms from the crash dump file take a BinAddrAdj argument to adjust binary addresses in old crash dumps. To be able to add more decode options in the future, rename the argument to DecodeOpts and let it be a record.
2017-11-08Merge branch 'maint'Siri Hansen
Conflicts: lib/observer/src/crashdump_viewer.erl
2017-11-08[cdv] Display warning if heap is incompleteSiri Hansen
2017-10-26[cdv] Check if dump version is newer than cdv can handleSiri Hansen
If the version of the given crash dump is newer than what crashdump_viewer is prepared to read, then crashdump_viewer will display an info dialog and then terminate. This is to allow major updates of the format of crash dumps.
2017-10-26[cdv] Add comment about ets tablesSiri Hansen
2017-10-20Merge branch 'maint'Björn Gustavsson
* maint: Bump version of crash dumps to 0.4 Verify that binaries of different sizes are dumped correctly Don't dump literal areas that are not referenced at all Dump literals separately to avoid incomplete heap data Implement dumping of maps in crash dumps Buffer writing of crash dumps Conflicts: erts/emulator/beam/erl_alloc.types
2017-10-18Dump literals separately to avoid incomplete heap dataBjörn Gustavsson
When a literal was used from several processes, the literal would be dumped in only one of the processes. The other processes that referenced the literals would have incomplete heap data.
2017-10-18Implement dumping of maps in crash dumpsBjörn Gustavsson
Maps would be dumped as the atom 'undefined', which is not very informative.
2017-09-20[cdv] Don't use old string APISiri Hansen
2017-09-19Merge branch 'maint'Siri Hansen
Conflicts: lib/observer/src/crashdump_viewer.erl lib/sasl/src/sasl.appup.src lib/stdlib/src/stdlib.appup.src
2017-09-18cdv: Warn about unsafe crashdumpSiri Hansen
Warn the user if the node executing the crashdump viewer potentially could overwrite the crashdump under inspection.
2017-09-18cdv: Show progress bar while reading big dataSiri Hansen
2017-09-15Merge branch 'siri/string-new-api'Siri Hansen
* siri/string-new-api: (28 commits) hipe (test): Do not use deprecated functions in string(3) dialyzer (test): Do not use deprecated functions in string(3) eunit (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) mnesia (test): Do not use deprecated functions in string(3) Deprecate old string functions observer: Do not use deprecated functions in string(3) common_test: Do not use deprecated functions in string(3) eldap: Do not use deprecated functions in string(3) et: Do not use deprecated functions in string(3) os_mon: Do not use deprecated functions in string(3) debugger: Do not use deprecated functions in string(3) runtime_tools: Do not use deprecated functions in string(3) asn1: Do not use deprecated functions in string(3) compiler: Do not use deprecated functions in string(3) sasl: Do not use deprecated functions in string(3) reltool: Do not use deprecated functions in string(3) kernel: Do not use deprecated functions in string(3) hipe: Do not use deprecated functions in string(3) ... Conflicts: lib/eunit/src/eunit_lib.erl lib/observer/src/crashdump_viewer.erl lib/reltool/src/reltool_target.erl
2017-09-15observer: Do not use deprecated functions in string(3)Siri Hansen
2017-09-15cdv: Optimize reading of crashdump with many binariesSiri Hansen
Earlier, crashdump_viewer stored an index of all binaries in a gb_tree on startup. The binary index was also stored in the cdv_dump_index_table along with all other "=xxx" tags from the dump. The difference between the indices was that the ets table contained the addresses of the binaries as strings (the hex address found after the "=binary:" tag) and in the gb_tree this hex address was instead converted to its integer value. The index in the ets table was only used once - when creating the gb_tree. The gb_tree was used for all later looups (to map integer address to file position). This commit replaces the two storages with one new ets table, cdv_binary_index_table, using the integer value of the hex address as key, and the position in the crashdump file as value. In the case of many binaries, this makes the start of crashdump viewer faster (only one place to write), and the data usage smaller (hex address strings are no longer stored). And it avoids the gc of the gb_tree.
2017-09-13cdv: Find end of 'Last calls' sectionSiri Hansen
This is a bug fix: the end of the 'Last calls' section is meant to be an empty line, but in some situations this is not the case. This could cause the complete dump to be read and stored as 'Last calls', causing very unexpected behavior in the crashdump viewer. This commit adds a check for ": ", which indicates that a new heading has occured and thus the 'Last calls' section is completly read.
2017-09-13cdv: Don't mark process as truncated if truncation is after all proc_heapsSiri Hansen
2017-09-05observer: Improve handling of UnicodeSiri Hansen
2017-05-04Update copyright yearRaimo Niskanen
2017-03-22observer: Polish crashdump viewer for ETSSverker Eriksson
Replaced "Id" column with "Is Named". Removed "Slot" column. Sort by name instead if id. Use name in right-click menu instead of id.
2016-12-14[crashdump_viewer] Allow multiple lines in SloganSiri Hansen
2016-11-30[crashdump_viewer] Display abort reason when truncatedSiri Hansen
If a crashdump is truncated due to size limit reached, a new 'abort' tag with reason is added at the end of the crashdump. This reason is now displayed along with the truncated-warning.
2016-06-03[cdv] Allow port info "Port controls forker process"Siri Hansen
2016-03-15update copyright-yearHenrik Nord
2015-10-27cdv: Fix crashdump ets table typeDan Gudmundsson
The type was set in the wrong datastructure.
2015-06-18Change license text to APLv2Bruce Yinhe
2015-06-05observer: cdv add scheduler informationDan Gudmundsson
New info in 18.
2015-06-05observer: cdv add more ets informationDan Gudmundsson
Info available from erl-18 nodes.