Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@@ -1,10 +1,7 @@
SUBDIRS = net_2_0
if INSTALL_4_0
SUBDIRS += net_4_0 net_4_5
endif
SUBDIRS = net_2_0 net_4_0 net_4_5
monodir = $(sysconfdir)/mono
monolldbdir = $(libdir)/mono/lldb
EXTRA_DIST = \
config.in \
@@ -16,7 +13,8 @@ EXTRA_DIST = \
reactive.pc.in xbuild12.pc \
net_1_1/machine.config \
gdb/mono-gdb.py \
gdb/gdb-python.diff
gdb/gdb-python.diff \
lldb/mono.py
pkgconfigdir = $(libdir)/pkgconfig
@@ -35,6 +33,7 @@ DISTCLEANFILES= mono-2.pc mono.pc mint.pc dotnet.pc dotnet35.pc wcf.pc mono-nuni
mono_DATA = config \
browscap.ini
monolldb_DATA = lldb/mono.py
gdbdir = $(bindir)
mono-sgen-gdb.py: gdb/mono-gdb.py

View File

@@ -79,7 +79,6 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
@INSTALL_4_0_TRUE@am__append_1 = net_4_0 net_4_5
subdir = data
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/mkinstalldirs $(srcdir)/mint.pc.in \
@@ -170,8 +169,8 @@ am__uninstall_files_from_dir = { \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(gdbdir)" "$(DESTDIR)$(monodir)" \
"$(DESTDIR)$(pkgconfigdir)"
DATA = $(gdb_DATA) $(mono_DATA) $(pkgconfig_DATA)
"$(DESTDIR)$(monolldbdir)" "$(DESTDIR)$(pkgconfigdir)"
DATA = $(gdb_DATA) $(mono_DATA) $(monolldb_DATA) $(pkgconfig_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
@@ -199,7 +198,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = net_2_0 net_4_0 net_4_5
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -257,6 +256,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -340,12 +340,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@
@@ -430,8 +433,9 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = net_2_0 $(am__append_1)
SUBDIRS = net_2_0 net_4_0 net_4_5
monodir = $(sysconfdir)/mono
monolldbdir = $(libdir)/mono/lldb
EXTRA_DIST = \
config.in \
browscap.ini mono.supp mono.d README ChangeLog \
@@ -442,7 +446,8 @@ EXTRA_DIST = \
reactive.pc.in xbuild12.pc \
net_1_1/machine.config \
gdb/mono-gdb.py \
gdb/gdb-python.diff
gdb/gdb-python.diff \
lldb/mono.py
pkgconfigdir = $(libdir)/pkgconfig
@SUPPORT_SGEN_FALSE@SGENPCFILE =
@@ -456,6 +461,7 @@ DISTCLEANFILES = mono-2.pc mono.pc mint.pc dotnet.pc dotnet35.pc wcf.pc mono-nun
mono_DATA = config \
browscap.ini
monolldb_DATA = lldb/mono.py
gdbdir = $(bindir)
gdb_DATA = gdb/mono-gdb.py mono-sgen-gdb.py
all: all-recursive
@@ -581,6 +587,27 @@ uninstall-monoDATA:
@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(monodir)'; $(am__uninstall_files_from_dir)
install-monolldbDATA: $(monolldb_DATA)
@$(NORMAL_INSTALL)
@list='$(monolldb_DATA)'; test -n "$(monolldbdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(monolldbdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(monolldbdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monolldbdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(monolldbdir)" || exit $$?; \
done
uninstall-monolldbDATA:
@$(NORMAL_UNINSTALL)
@list='$(monolldb_DATA)'; test -n "$(monolldbdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(monolldbdir)'; $(am__uninstall_files_from_dir)
install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL)
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
@@ -762,7 +789,7 @@ check: check-recursive
all-am: Makefile $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(gdbdir)" "$(DESTDIR)$(monodir)" "$(DESTDIR)$(pkgconfigdir)"; do \
for dir in "$(DESTDIR)$(gdbdir)" "$(DESTDIR)$(monodir)" "$(DESTDIR)$(monolldbdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@@ -816,7 +843,7 @@ info: info-recursive
info-am:
install-data-am: install-gdbDATA install-monoDATA \
install-data-am: install-gdbDATA install-monoDATA install-monolldbDATA \
install-pkgconfigDATA
install-dvi: install-dvi-recursive
@@ -862,7 +889,7 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-gdbDATA uninstall-monoDATA \
uninstall-pkgconfigDATA
uninstall-monolldbDATA uninstall-pkgconfigDATA
.MAKE: $(am__recursive_targets) install-am install-strip
@@ -873,13 +900,14 @@ uninstall-am: uninstall-gdbDATA uninstall-monoDATA \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-gdbDATA \
install-html install-html-am install-info install-info-am \
install-man install-monoDATA install-pdf install-pdf-am \
install-pkgconfigDATA install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-gdbDATA \
uninstall-monoDATA uninstall-pkgconfigDATA
install-man install-monoDATA install-monolldbDATA install-pdf \
install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags tags-am uninstall uninstall-am uninstall-gdbDATA \
uninstall-monoDATA uninstall-monolldbDATA \
uninstall-pkgconfigDATA
mono-sgen-gdb.py: gdb/mono-gdb.py

174
data/lldb/mono.py Normal file
View File

@@ -0,0 +1,174 @@
#
# Author: Zoltan Varga (vargaz@gmail.com)
# License: MIT/X11
#
#
# This is a mono support mode for lldb
#
# Comments about the lldb python api:
# - there are no accessors, i.e. valobj["name"]
# - http://lldb.llvm.org/python_reference/index.html seems to be outdated
# - there is no autoload support, i.e. can't load this file automatically
# when 'mono' is the debugger target.
import lldb
# FIXME: Generate enums from runtime enums
MONO_TYPE_END = 0x00
MONO_TYPE_VOID = 0x01
MONO_TYPE_BOOLEAN = 0x02
MONO_TYPE_CHAR = 0x03
MONO_TYPE_I1 = 0x04
MONO_TYPE_U1 = 0x05
MONO_TYPE_I2 = 0x06
MONO_TYPE_U2 = 0x07
MONO_TYPE_I4 = 0x08
MONO_TYPE_U4 = 0x09
MONO_TYPE_I8 = 0x0a
MONO_TYPE_U8 = 0x0b
MONO_TYPE_R4 = 0x0c
MONO_TYPE_R8 = 0x0d
MONO_TYPE_STRING = 0x0e
MONO_TYPE_PTR = 0x0f
MONO_TYPE_BYREF = 0x10
MONO_TYPE_VALUETYPE = 0x11
MONO_TYPE_CLASS = 0x12
MONO_TYPE_VAR = 0x13
MONO_TYPE_ARRAY = 0x14
MONO_TYPE_GENERICINST= 0x15
MONO_TYPE_TYPEDBYREF = 0x16
MONO_TYPE_I = 0x18
MONO_TYPE_U = 0x19
MONO_TYPE_FNPTR = 0x1b
MONO_TYPE_OBJECT = 0x1c
MONO_TYPE_SZARRAY = 0x1d
MONO_TYPE_MVAR = 0x1e
primitive_type_names = {
MONO_TYPE_BOOLEAN : "bool",
MONO_TYPE_CHAR : "char",
MONO_TYPE_I1 : "sbyte",
MONO_TYPE_U1 : "byte",
MONO_TYPE_I2 : "short",
MONO_TYPE_U2 : "ushort",
MONO_TYPE_I4 : "int",
MONO_TYPE_U4 : "uint",
MONO_TYPE_I8 : "long",
MONO_TYPE_U8 : "ulong",
MONO_TYPE_R4 : "float",
MONO_TYPE_R8 : "double",
MONO_TYPE_STRING : "string"
}
#
# Helper functions for working with the lldb python api
#
def member(val, member_name):
return val.GetChildMemberWithName (member_name)
def string_member(val, member_name):
return val.GetChildMemberWithName (member_name).GetSummary ()[1:-1]
def isnull(val):
return val.deref.addr.GetOffset () == 0
def stringify_class_name(ns, name):
if ns == "System":
if name == "Byte":
return "byte"
if name == "String":
return "string"
if ns == "":
return name
else:
return "{0}.{1}".format (ns, name)
#
# Pretty printers for mono runtime types
#
def stringify_type (type):
"Print a MonoType structure"
ttype = member(type, "type").GetValueAsUnsigned()
if primitive_type_names.has_key (ttype):
return primitive_type_names [ttype]
else:
return "<MonoTypeEnum 0x{0:x}>".format (ttype)
def stringify_ginst (ginst):
"Print a MonoGenericInst structure"
len = int(member(ginst, "type_argc").GetValue())
argv = member(ginst, "type_argv")
res=""
for i in range(len):
t = argv.GetChildAtIndex(i, False, True)
if i > 0:
res += ", "
res += stringify_type(t)
return res
def print_type(valobj, internal_dict):
type = valobj
if isnull (type):
return ""
return stringify_type (type)
def print_class (valobj, internal_dict):
klass = valobj
if isnull (klass):
return ""
aname = member (member (member (klass, "image"), "assembly"), "aname")
basename = "[{0}]{1}".format (string_member (aname, "name"), (stringify_class_name (string_member (klass, "name_space"), string_member (klass, "name"))))
gclass = member (klass, "generic_class")
if not isnull (gclass):
ginst = member (member (gclass, "context"), "class_inst")
return "{0}<{1}>".format (basename, stringify_ginst (ginst))
return basename
def print_method (valobj, internal_dict):
method = valobj
if isnull (method):
return ""
klass = member (method, "klass")
return "{0}:{1}()".format (print_class (klass, None), string_member (valobj, "name"))
def print_domain(valobj, internal_dict):
domain = valobj
if isnull (domain):
return ""
target = domain.target
root = target.FindFirstGlobalVariable("mono_root_domain")
name = string_member (domain, "friendly_name")
if root.IsValid () and root.deref.addr.GetOffset () == root.deref.addr.GetOffset ():
return "[root]"
else:
return "[{0}]".format (name)
def print_object(valobj, internal_dict):
obj = valobj
if isnull (obj):
return ""
domain = member (member (obj, "vtable"), "domain")
klass = member (member (obj, "vtable"), "klass")
return print_domain (domain, None) + print_class (klass, None)
# Register pretty printers
# FIXME: This cannot pick up the methods define in this module, leading to warnings
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_method MonoMethod")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_class MonoClass")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_type MonoType")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_domain MonoDomain")
lldb.debugger.HandleCommand ("type summary add -w mono -F mono.print_object MonoObject")
lldb.debugger.HandleCommand ("type category enable mono")
# Helper commands for runtime debugging
# These resume the target
# Print the method at the current ip
lldb.debugger.HandleCommand ("command alias pip p mono_print_method_from_ip((void*)$pc)")
# Print the method at the provided ip
lldb.debugger.HandleCommand ("command regex pmip 's/^$/p mono_print_method_from_ip((void*)$pc)/' 's/(.+)/p mono_print_method_from_ip((void*)(%1))/'")
print "Mono support mode loaded."

View File

@@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -321,12 +322,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -321,12 +322,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@@ -178,6 +178,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -261,12 +262,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@

View File

@@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DISABLE_PERF_EVENTS = @DISABLE_PERF_EVENTS@
DISABLE_SHARED_HANDLES = @DISABLE_SHARED_HANDLES@
DLLTOOL = @DLLTOOL@
DOLT_BASH = @DOLT_BASH@
@@ -321,12 +322,15 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VTUNE_CFLAGS = @VTUNE_CFLAGS@
VTUNE_LIBS = @VTUNE_LIBS@
WERROR_CFLAGS = @WERROR_CFLAGS@
X11 = @X11@
XATTR_LIB = @XATTR_LIB@