diff options
Diffstat (limited to 'share/gdb/system-gdbinit/elinos.py')
-rw-r--r-- | share/gdb/system-gdbinit/elinos.py | 91 |
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() |