Meego Wiki
Views

Quality/QA-tools/Corelysis

From MeeGo wiki
< Quality | QA-tools(Difference between revisions)
Jump to: navigation, search
(Introduction)
(Introduction)
 
(5 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]]
-
 
-
== What it provides? ==
 
-
 
-
* Automatic backtrace generation from core dump helping to debug the problem and without needing to do it locally by the developer
 
-
* Additional info for the failed test case helping to report defects
 
==  Installation ==
==  Installation ==
Line 55: Line 50:
=== Install from MeeGo package repositories ===
=== Install from MeeGo package repositories ===
-
TODO
+
'''Ubuntu'''
 +
 
 +
sudo apt-get install python-corelysis
 +
 
 +
'''Fedora'''
 +
 
 +
sudo yum install python-corelysis
=== Install from sources ===
=== Install from sources ===
Line 76: Line 77:
  cd corelysis
  cd corelysis
  sudo python setup.py install
  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 ===
=== Executing Corelysis ===

Latest revision as of 23:17, 16 January 2012

Contents

Corelysis

Introduction

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.

Automated testing and crash reporting

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.

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 meego SDK.
  • the gdb needs to be statically linked, this can be achieved by 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

In Corelysis related issues/ questions contact us in the following channels:

Personal tools