summaryrefslogtreecommitdiff
path: root/share/gdb/system-gdbinit/elinos.py
diff options
context:
space:
mode:
Diffstat (limited to 'share/gdb/system-gdbinit/elinos.py')
-rw-r--r--share/gdb/system-gdbinit/elinos.py91
1 files changed, 0 insertions, 91 deletions
diff --git a/share/gdb/system-gdbinit/elinos.py b/share/gdb/system-gdbinit/elinos.py
deleted file mode 100644
index cd35aed..0000000
--- a/share/gdb/system-gdbinit/elinos.py
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright (C) 2011-2014 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-"""Configure GDB using the ELinOS environment."""
-
-import os
-import glob
-import gdb
-
-
-def warn(msg):
- print "warning: %s" % msg
-
-
-def get_elinos_environment():
- """Return the ELinOS environment.
-
- If the ELinOS environment is properly set up, return a dictionary
- which contains:
- * The path to the ELinOS project at key 'project';
- * The path to the ELinOS CDK at key 'cdk';
- * The ELinOS target name at key 'target' (Eg. 'i486-linux');
- * A list of Xenomai install prefixes (which could be empty, if
- the ELinOS project does not include Xenomai) at key 'xenomai'.
-
- If one of these cannot be found, print a warning; the corresponding
- value in the returned dictionary will be None.
- """
- result = {}
- for key in ("project", "cdk", "target"):
- var = "ELINOS_" + key.upper()
- if var in os.environ:
- result[key] = os.environ[var]
- else:
- warn("%s not set" % var)
- result[key] = None
-
- if result["project"] is not None:
- result["xenomai"] = glob.glob(result["project"] + "/xenomai-[0-9.]*")
- else:
- result["xenomai"] = []
-
- return result
-
-
-def elinos_init():
- """Initialize debugger environment for ELinOS.
-
- Let the debugger know where to find the ELinOS libraries on host. This
- assumes that an ELinOS environment is properly set up. If some environment
- variables are missing, warn about which library may be missing.
- """
- elinos_env = get_elinos_environment()
-
- solib_dirs = []
-
- # System libraries
- if None in (elinos_env[key] for key in ("cdk", "target")):
- warn("ELinOS system libraries will not be loaded")
- else:
- solib_prefix = "%s/%s" % (elinos_env["cdk"], elinos_env["target"])
- solib_dirs += ["%s/%s" % (solib_prefix, "lib")]
- gdb.execute("set solib-absolute-prefix %s" % solib_prefix)
-
- # Xenomai libraries. Those are optional, so have a lighter warning
- # if they cannot be located.
- if elinos_env["project"] is None:
- warn("Xenomai libraries may not be loaded")
- else:
- for dir in elinos_env['xenomai']:
- solib_dirs += ["%s/%s"
- % (dir, "xenomai-build/usr/realtime/lib")]
-
- if len(solib_dirs) != 0:
- gdb.execute("set solib-search-path %s" % ":".join(solib_dirs))
-
-
-if __name__ == "__main__":
- elinos_init()