Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
to prepare for dirty schedulers with common run queues
|
|
|
|
|
|
Conflicts:
lib/observer/src/crashdump_viewer.erl
|
|
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.
|
|
|
|
This bug was introduced by commit 3b964e8dbaa0cd73ca7a983b3ce948e0dbd2c35c
|
|
* maint:
Use base64 encoding in crash dumps
Correct parsing of sub binaries
Generalize passing of options for decoding
|
|
This will reduce the size of crash dumps, especially if
there are large binaries.
|
|
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.
|
|
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.
|
|
Conflicts:
lib/observer/src/crashdump_viewer.erl
|
|
|
|
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.
|
|
|
|
* 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
|
|
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.
|
|
Maps would be dumped as the atom 'undefined', which is
not very informative.
|
|
|
|
Conflicts:
lib/observer/src/crashdump_viewer.erl
lib/sasl/src/sasl.appup.src
lib/stdlib/src/stdlib.appup.src
|
|
Warn the user if the node executing the crashdump viewer potentially
could overwrite the crashdump under inspection.
|
|
|
|
* 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
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
Replaced "Id" column with "Is Named".
Removed "Slot" column.
Sort by name instead if id.
Use name in right-click menu instead of id.
|
|
|
|
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.
|
|
|
|
|
|
The type was set in the wrong datastructure.
|
|
|
|
New info in 18.
|
|
Info available from erl-18 nodes.
|
|
* dgud/observer/misc-fixes:
observer: Fix external monitors to registered processes in cdv
observer: Cleanup io server parts
observer: Fix range test
|
|
|
|
Missing information
|
|
crashdump_viewer would crash if the owner of a timer was specified as
the process' regisered name. This has been corrected.
|
|
A node to which we have references to multiple instances (creations)
will have an information line in the crashdump like this:
Creation: 1 2 ...
This would earlier crash because crashdump_viewer would try to do
list_to_integer on the value after "Creation: ". This is now
corrected.
This correction also helps the case when the emulator is debug
compiled, since the line could then be
Creation: 1 (refc=1)
|
|
crashdump_viewer:progress_pmap did sometimes hang since is spawned a
process, then monitored it and waited for a specific DOWN
message. When the process' work was very fast, it would exit before
the call to monitor and the DOWN message would contain reason 'noproc'
instead of the expected {pmap_done,Result}.
By doing spawn_monitor/1 instead, the monitor is always set before the
process exits so the deadlock is avoided.
|
|
|