(→Corelysis) |
(→Introduction) |
||
| (11 intermediate revisions not shown) | |||
| Line 3: | Line 3: | ||
== Introduction == | == Introduction == | ||
| - | Corelysis is a daemon service written in [http://www.python.org/ Python], which extracts, processes [[Quality/QA-tools/rich-core|rich core dumps]] from saved from MeeGo devices and finally publishes crash data in [[Quality/QA-tools/CrashReports| Crash Reports]]. Corelysis runs on back-end server and works closely with [[Quality/QA-tools/OTS|OTS]] service. | + | Corelysis is part of [[Quality/QA-tools/CrashAnalysisSolution|MeeGo Crash Analysis Solution]]. It is a daemon service written in [http://www.python.org/ Python], which extracts, processes [[Quality/QA-tools/rich-core|rich core dumps]] from saved from MeeGo devices and finally publishes crash data in [[Quality/QA-tools/CrashReports|Crash Reports]]. Corelysis runs on back-end server and works closely with [[Quality/QA-tools/OTS|OTS]] service. |
Corelysis has originated from [http://www.nokia.com Nokia], where it has been utilized for [http://maemo.org Maemo] related QA work. Later on Corelysis has been developed for [[ARM/N900|MeeGo N900 DeveloperEdition]] to report process crashes occured in automated test execution runs. | Corelysis has originated from [http://www.nokia.com Nokia], where it has been utilized for [http://maemo.org Maemo] related QA work. Later on Corelysis has been developed for [[ARM/N900|MeeGo N900 DeveloperEdition]] to report process crashes occured in automated test execution runs. | ||
| Line 11: | Line 11: | ||
== How does it work? == | == How does it work? == | ||
| - | The idea of Corelysis is quite simple. It takes a rich core dump as an input extracts the data from it and runs it through a set of "tasks", which each manipulate the data in different way. Maybe the most relevant task is the one which generates the backtrace from plain core dump. To be able to do this, Corelysis needs a fs-type meego image with corresponding debuginfo-packages installed. To generate the backtrace, a cross-compiled GDB is executed in chrooted target. | + | The idea of Corelysis is quite simple. It takes a rich core dump as an input extracts the data from it and runs it through a set of "tasks", which each manipulate the data in different way. Maybe the most relevant task is the one which generates the backtrace from plain core dump. To be able to do this, Corelysis needs a fs-type meego image with corresponding debuginfo-packages installed. To generate the backtrace, a [[Quality/QA-tools/Corelysis#Setting_up_cross_gdb|cross-compiled GDB]] is executed in chrooted target. |
[[File:backend.png|600px|thumb|center|Corelysis work flow]] | [[File:backend.png|600px|thumb|center|Corelysis work flow]] | ||
| - | + | ||
| + | == Installation == | ||
| + | |||
| + | === Preparation - Adding MeeGo Tools:Testing repository === | ||
| + | |||
| + | '''Ubuntu''' | ||
| + | |||
| + | * Depending on your distribution, add either of the below lines to /etc/apt/sources.list. | ||
| + | |||
| + | deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.04/ / | ||
| + | |||
| + | deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.10/ / | ||
| + | |||
| + | * Add the repository keys | ||
| + | |||
| + | gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A | ||
| + | gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add - | ||
| + | |||
| + | * Update the package list | ||
| + | |||
| + | sudo apt-get update | ||
| + | |||
| + | '''Fedora''' | ||
| + | |||
| + | * Add the repository | ||
| + | |||
| + | cd /etc/yum.repos.d/ | ||
| + | sudo wget http://download.meego.com/live/Tools:/Testing/Fedora13/Tools:Testing.repo | ||
| + | |||
| + | * Add the repository keys | ||
| + | |||
| + | gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A | ||
| + | gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add - | ||
| + | |||
| + | === Install from MeeGo package repositories === | ||
| + | |||
| + | '''Ubuntu''' | ||
| + | |||
| + | sudo apt-get install python-corelysis | ||
| + | |||
| + | '''Fedora''' | ||
| + | |||
| + | sudo yum install python-corelysis | ||
| + | |||
| + | === Install from sources === | ||
| + | |||
| + | * Get sources | ||
| + | git clone git://gitorious.org/meego-quality-assurance/corelysis.git | ||
| + | |||
| + | * Install dependencies | ||
| + | |||
| + | '''Ubuntu''' | ||
| + | |||
| + | sudo apt-get install python-setuptools python-pyinotify sp-rich-core-postproc | ||
| + | |||
| + | '''Fedora''' | ||
| + | |||
| + | sudo yum install python-setuptools python-inotify sp-rich-core-postproc | ||
| + | |||
| + | * Install everything | ||
| + | |||
| + | cd corelysis | ||
| + | sudo python setup.py install | ||
| + | |||
| + | === Setting up cross gdb === | ||
| + | |||
| + | * obtain cross gdb by e.g. installing [http://meego.com/downloads/releases/1.2/meego-v1.2-sdk meego SDK]. | ||
| + | * the gdb needs to be statically linked, this can be achieved by [http://statifier.sourceforge.net statifier tool] | ||
| + | cd /opt/meego/meego-1.2-sdk-armv7hl-toolchain/arm-meego-linux-gnueabi/bin | ||
| + | statifier arm-meego-linux-gnueabi-gdb arm-meego-linux-gnueabi-gdb-static | ||
| + | * for the static binary to work, process address space randomization must be disabled | ||
| + | # echo 0 > /proc/sys/kernel/randomize_va_space | ||
| + | |||
| + | === Executing Corelysis === | ||
| + | |||
| + | sudo /usr/bin/corelysis | ||
| + | |||
== Contact == | == Contact == | ||
Contents |
Corelysis is part of MeeGo Crash Analysis Solution. It is a daemon service written in Python, which extracts, processes rich core dumps from saved from MeeGo devices and finally publishes crash data in Crash Reports. Corelysis runs on back-end server and works closely with OTS service.
Corelysis has originated from Nokia, where it has been utilized for Maemo related QA work. Later on Corelysis has been developed for MeeGo N900 DeveloperEdition to report process crashes occured in automated test execution runs.
The idea of Corelysis is quite simple. It takes a rich core dump as an input extracts the data from it and runs it through a set of "tasks", which each manipulate the data in different way. Maybe the most relevant task is the one which generates the backtrace from plain core dump. To be able to do this, Corelysis needs a fs-type meego image with corresponding debuginfo-packages installed. To generate the backtrace, a cross-compiled GDB is executed in chrooted target.
Ubuntu
deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.04/ /
deb http://download.meego.com/live/Tools:/Testing/xUbuntu_10.10/ /
gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -
sudo apt-get update
Fedora
cd /etc/yum.repos.d/ sudo wget http://download.meego.com/live/Tools:/Testing/Fedora13/Tools:Testing.repo
gpg --keyserver subkeys.pgp.net --recv-keys 0BC7BEC479FC1F8A gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -
Ubuntu
sudo apt-get install python-corelysis
Fedora
sudo yum install python-corelysis
git clone git://gitorious.org/meego-quality-assurance/corelysis.git
Ubuntu
sudo apt-get install python-setuptools python-pyinotify sp-rich-core-postproc
Fedora
sudo yum install python-setuptools python-inotify sp-rich-core-postproc
cd corelysis sudo python setup.py install
cd /opt/meego/meego-1.2-sdk-armv7hl-toolchain/arm-meego-linux-gnueabi/bin statifier arm-meego-linux-gnueabi-gdb arm-meego-linux-gnueabi-gdb-static
# echo 0 > /proc/sys/kernel/randomize_va_space
sudo /usr/bin/corelysis
In Corelysis related issues/ questions contact us in the following channels: