GDB: introduce GNU debugger handling library

This instroduces the Avocado GDB handling library. Part of it is
built upon the gdbmi parser from the pygdb project.

Even though pygdb seems to be dead as a project, the MI language
parser is really useful and fits well with avocado's needs.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
gdbtest: introduce new test

This test fires a GDB instance, sends both valid and invalid commands,
runs a couple of binaries, setting breakpoints, catching signals and
generating core dumps.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
avocado/runtime.py: add runtime configuration module

Simple namespace for storing configurations that will affect
the avocado runtime, including the test runner and standard
API behavior.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
GDB plugin: enables GNU Debugger features

Such as the ability to run any number of applications inside the
debugger transparently.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
GDB plugin: adapt to new plugin style

Signed-off-by: Cleber Rosa <crosa@redhat.com>
job runtime: set the currently running test

So that other parts of the framework may act upon it if necessary.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
avocado/utils/process.py: add transparent support for GDB

With current functionality being that it generates core dumps for
apps that receive such a signal.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
segfaulttest: introduce new test

That is useful to test the behaviour of an application that is run
inside the GNU debugger.

Signed-off-by: Cleber Rosa <crosa@redhat.com>