Skip to content

a small and fast corefile generator.

License

Notifications You must be signed in to change notification settings

X-Profiler/arthur

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arthur uses fork() to reduce the pausing lag, and lz4 to reduce the corefile size.

Capture a corefile by arthur,

arthur -p <pid>

coredump will be saved to acore.pid.

Acore is the new corefile format used in Arthur,

Convert Acore to GNU corefile,

arthur -c <acore.pid>

GNU corefile will be saved to core.pid.

arthur vs gcore

based on 1.7GB node process,

- arthur gcore
process paused time 30ms 1.6s
realtime cost 0.641s 1.639s
corefile size 16MB 1.7GB

arthur log,

arthur[50752] I: Process 50519 paused 29.138 ms.
arthur[50752] I: Compressed 1719906691 bytes into 15628790 bytes ==> 0.91%

real    0m0.641s
user    0m0.277s
sys     0m0.316s

gcore log,

Saved corefile core.50519

real    0m1.639s
user    0m0.267s
sys     0m1.371s

file size compare,

$ls -al core.50519 acore.50519
-rw-r--r-- 1 zlei users   15712205 Mar 18 20:08 acore.50519
-rw-r--r-- 1 zlei users 1699545344 Mar 18 20:08 core.50519

Advanced Usage

Fork coredump mode, (default)

arthur -p <pid> -0

Gcore mode,

arthur -p <pid> -1

Kernel coredump mode,

arthur -p <pid> -2

Monitor mode,

arthur -p <pid> -3

only supports x86_64 Linux.

About

a small and fast corefile generator.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 53.6%
  • C 45.5%
  • Makefile 0.9%