Age | Commit message (Collapse) | Author |
|
|
|
A new field named "Memory" has been added for each process in the
crash dump. This is now shown by the crashdump_viewer. It replaces the
"Stack+heap" column in the process overview page, and is added to the
process detail page.
|
|
A new table with summary of allocator blocks- and carriers size is
added under "Allocator information" in crashdump viewer.
|
|
Running "open" on an HTTP URL will pass it to the system's configured
default browser.
|
|
|
|
Also, remove compiler warnings for crashdump_viewer_SUITE and fix
Makefile in test directory so Emakefile does not grow.
|
|
|
|
Since browsers no longer can provide the full path of a file selected
with a file-type input field (browse button), the input field for
loading a crashdump is now changed to a plain text input field. Since
this reduces the user-friendlyness, a shell script (and a .bat file)
has instead been added so the crashdump_viewer can be started directly
from the command line - and thus normal tab completion can be used for
selecting the crashdump file.
Usage: cdv file [ browser ]
|
|
This is a first attempt at fixing the problem described in seq11783 -
crashdump_viewer is very slow at parsing big crashdumps. To open the
first page for a dump of 17M takes about 2 minutes and a dump of 280M
takes 1.5-2 hours.
The main problmem is that the cdv_dump_index_table, which holds all
tags read from the dump, is a bag. Profiling shows that ~95% of the
time is spent in ets:insert. The table is now changed to an
ordered_set.
A second problem occured when a page with many table rows was
opened. These pages were sent to inet in one chunk, causing both
crashdump_viewer_server and the inets (mod_esi) process to grow very
much in memory usage. To overcome this, the pages are now sent to
inets in chunks of 1000 rows, and the data is coverted to binaries to
avoid data copying between the two processes.
Also, some new information in the crashdump was not recognized by the
crashdump_viewer. This has been fixed.
|
|
NIF function prototypes in order to allow more than 3 function
arguments. Also an incompatible change in the return value of
erlang:load_nif/2. Added support for references, floats and term
comparison in NIFs. Read more in the documentation of erl_nif and
erlang:load_nif/2.
|
|
|