Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bingbingbingbing
mono
提交
7ec3cabd
M
mono
项目概览
bingbingbingbing
/
mono
与 Fork 源项目一致
从无法访问的项目Fork
通知
35
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mono
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7ec3cabd
编写于
9月 24, 2012
作者:
L
Levi Bard
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #37 from Unity-Technologies/mono-bisect
VectoredExceptions and bug fixes
上级
d871f1fb
2b1e0b04
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
270 addition
and
193 deletion
+270
-193
collect_allbuilds.pl
collect_allbuilds.pl
+0
-10
eglib/src/goutput.c
eglib/src/goutput.c
+11
-0
eglib/src/gutf8.c
eglib/src/gutf8.c
+128
-96
eglib/src/unicode-data.h
eglib/src/unicode-data.h
+11
-11
libgc/include/private/gcconfig.h
libgc/include/private/gcconfig.h
+3
-1
mono/mini/debugger-agent.c
mono/mini/debugger-agent.c
+7
-0
mono/mini/exceptions-amd64.c
mono/mini/exceptions-amd64.c
+59
-28
mono/mini/exceptions-x86.c
mono/mini/exceptions-x86.c
+34
-12
mono/mini/mini-exceptions.c
mono/mini/mini-exceptions.c
+2
-1
mono/mini/mini-windows.c
mono/mini/mini-windows.c
+3
-22
msvc/libgc.vcproj
msvc/libgc.vcproj
+10
-10
unity/unity_utils.c
unity/unity_utils.c
+2
-2
未找到文件。
collect_allbuilds.pl
浏览文件 @
7ec3cabd
...
...
@@ -22,17 +22,7 @@ while (defined(my $file = readdir(DIR))) {
}
closedir
(
DIR
);
#both the ppc and i386 runtime builds output their runtime in monodistribution/bin/osx/mono. as we collect both, we want
#to merge them into one file using the lipo tool.
system
("
lipo -create incomingbuilds/osx-i386/monodistribution/bin/mono incomingbuilds/osx-ppc/monodistribution/bin/mono -output collectedbuilds/monodistribution/bin/mono
")
&&
die
("
failed running lipo on osx runtimes
");
system
("
chmod +x collectedbuilds/monodistribution/bin/mono
")
eq
0
or
die
("
Failed chmodding
");
system
("
lipo -create incomingbuilds/osx-i386/embedruntimes/osx/MonoBundleBinary incomingbuilds/osx-ppc/embedruntimes/osx/MonoBundleBinary -output collectedbuilds/embedruntimes/osx/MonoBundleBinary
")
&&
die
("
failed running lipo on osx MonoBundleBinary
");
system
("
lipo -create incomingbuilds/osx-i386/embedruntimes/osx/libmono.0.dylib incomingbuilds/osx-ppc/embedruntimes/osx/libmono.0.dylib -output collectedbuilds/embedruntimes/osx/libmono.0.dylib
")
&&
die
("
failed running lipo on libmono.0.dylib
");
system
("
lipo -create incomingbuilds/osx-i386/embedruntimes/osx/libmono.a incomingbuilds/osx-ppc/embedruntimes/osx/libmono.a -output collectedbuilds/embedruntimes/osx/libmono.a
")
&&
die
("
failed running lipo on libmono.a
");
InstallNameTool
("
collectedbuilds/embedruntimes/osx/libmono.0.dylib
",
"
\@
executable_path/../Frameworks/MonoEmbedRuntime/osx/libmono.0.dylib
");
chdir
("
collectedbuilds
");
rmove
('
versions-aggregated.txt
',
'
versions.txt
');
...
...
eglib/src/goutput.c
浏览文件 @
7ec3cabd
...
...
@@ -170,3 +170,14 @@ g_log (const gchar *log_domain, GLogLevelFlags log_level, const gchar *format, .
va_end
(
args
);
}
void
g_assertion_message
(
const
gchar
*
format
,
...)
{
va_list
args
;
va_start
(
args
,
format
);
g_logv
(
G_LOG_DOMAIN
,
G_LOG_LEVEL_ERROR
,
format
,
args
);
va_end
(
args
);
abort
();
}
eglib/src/gutf8.c
浏览文件 @
7ec3cabd
...
...
@@ -21,7 +21,7 @@ g_convert_error_quark ()
return
error_quark
;
}
gunichar
*
static
gunichar
*
utf8_case_conv
(
const
gchar
*
str
,
gssize
len
,
gboolean
upper
)
{
glong
i
,
u16len
,
u32len
;
...
...
@@ -55,98 +55,6 @@ g_utf8_strdown (const gchar *str, gssize len)
return
(
gchar
*
)
utf8_case_conv
(
str
,
len
,
FALSE
);
}
gunichar2
*
g_utf8_to_utf16
(
const
gchar
*
str
,
glong
len
,
glong
*
items_read
,
glong
*
items_written
,
GError
**
error
)
{
/* The conversion logic is almost identical to UTF8Encoding.GetChars(),
but error check is always done at utf8_to_utf16_len() so that
the conversion core below simply resets erroreous bits */
glong
utf16_len
;
gunichar2
*
ret
;
guchar
ch
,
mb_size
,
mb_remain
;
guint32
codepoint
;
glong
in_pos
,
out_pos
;
utf16_len
=
0
;
mb_size
=
0
;
mb_remain
=
0
;
in_pos
=
0
;
out_pos
=
0
;
if
(
error
)
*
error
=
NULL
;
if
(
items_written
)
*
items_written
=
0
;
utf16_len
=
utf8_to_utf16_len
(
str
,
len
,
items_read
,
error
);
if
(
error
)
if
(
*
error
)
return
NULL
;
if
(
utf16_len
<
0
)
return
NULL
;
ret
=
g_malloc
((
1
+
utf16_len
)
*
sizeof
(
gunichar2
));
for
(
in_pos
=
0
;
len
<
0
?
str
[
in_pos
]
:
in_pos
<
len
;
in_pos
++
)
{
ch
=
(
guchar
)
str
[
in_pos
];
if
(
mb_size
==
0
)
{
if
(
ch
<
0x80
)
ret
[
out_pos
++
]
=
ch
;
else
if
((
ch
&
0xE0
)
==
0xC0
)
{
codepoint
=
ch
&
0x1F
;
mb_size
=
2
;
}
else
if
((
ch
&
0xF0
)
==
0xE0
)
{
codepoint
=
ch
&
0x0F
;
mb_size
=
3
;
}
else
if
((
ch
&
0xF8
)
==
0xF0
)
{
codepoint
=
ch
&
7
;
mb_size
=
4
;
}
else
if
((
ch
&
0xFC
)
==
0xF8
)
{
codepoint
=
ch
&
3
;
mb_size
=
5
;
}
else
if
((
ch
&
0xFE
)
==
0xFC
)
{
codepoint
=
ch
&
3
;
mb_size
=
6
;
}
else
{
/* invalid utf-8 sequence */
codepoint
=
0
;
mb_remain
=
mb_size
=
0
;
}
if
(
mb_size
>
1
)
mb_remain
=
mb_size
-
1
;
}
else
{
if
((
ch
&
0xC0
)
==
0x80
)
{
codepoint
=
(
codepoint
<<
6
)
|
(
ch
&
0x3F
);
if
(
--
mb_remain
==
0
)
{
/* multi byte character is fully consumed now. */
if
(
codepoint
<
0x10000
)
{
ret
[
out_pos
++
]
=
(
gunichar2
)(
codepoint
%
0x10000
);
}
else
if
(
codepoint
<
0x110000
)
{
/* surrogate pair */
codepoint
-=
0x10000
;
ret
[
out_pos
++
]
=
(
gunichar2
)((
codepoint
>>
10
)
+
0xD800
);
ret
[
out_pos
++
]
=
(
gunichar2
)((
codepoint
&
0x3FF
)
+
0xDC00
);
}
else
{
/* invalid utf-8 sequence (excess) */
codepoint
=
0
;
mb_remain
=
0
;
}
mb_size
=
0
;
}
}
else
{
/* invalid utf-8 sequence */
codepoint
=
0
;
mb_remain
=
mb_size
=
0
;
}
}
}
ret
[
out_pos
]
=
0
;
if
(
items_written
)
*
items_written
=
out_pos
;
return
ret
;
}
static
glong
utf8_to_utf16_len
(
const
gchar
*
str
,
glong
len
,
glong
*
items_read
,
GError
**
error
)
{
...
...
@@ -156,13 +64,27 @@ utf8_to_utf16_len (const gchar *str, glong len, glong *items_read, GError **erro
guint32
codepoint
;
glong
in_pos
,
ret
;
if
(
len
<
0
)
len
=
(
glong
)
strlen
(
str
);
in_pos
=
0
;
ret
=
0
;
/* Common case */
for
(
in_pos
=
0
;
in_pos
<
len
&&
(
guchar
)
str
[
in_pos
]
<
0x80
;
in_pos
++
)
ret
++
;
if
(
in_pos
==
len
)
{
if
(
items_read
)
*
items_read
=
in_pos
;
return
ret
;
}
mb_size
=
0
;
mb_remain
=
0
;
overlong
=
0
;
in_pos
=
0
;
ret
=
0
;
for
(
in_pos
=
0
;
len
<
0
?
str
[
in_pos
]
:
in_pos
<
len
;
in_pos
++
)
{
for
(
;
in_pos
<
len
;
in_pos
++
)
{
ch
=
str
[
in_pos
];
if
(
mb_size
==
0
)
{
if
(
ch
<
0x80
)
...
...
@@ -271,6 +193,112 @@ utf8_to_utf16_len (const gchar *str, glong len, glong *items_read, GError **erro
return
ret
;
}
gunichar2
*
g_utf8_to_utf16
(
const
gchar
*
str
,
glong
len
,
glong
*
items_read
,
glong
*
items_written
,
GError
**
error
)
{
/* The conversion logic is almost identical to UTF8Encoding.GetChars(),
but error check is always done at utf8_to_utf16_len() so that
the conversion core below simply resets erroreous bits */
glong
utf16_len
;
gunichar2
*
ret
;
guchar
ch
,
mb_size
,
mb_remain
;
guint32
codepoint
;
glong
in_pos
,
out_pos
;
utf16_len
=
0
;
mb_size
=
0
;
mb_remain
=
0
;
in_pos
=
0
;
out_pos
=
0
;
if
(
error
)
*
error
=
NULL
;
if
(
len
<
0
)
len
=
(
glong
)
strlen
(
str
);
if
(
items_read
)
*
items_read
=
0
;
if
(
items_written
)
*
items_written
=
0
;
utf16_len
=
utf8_to_utf16_len
(
str
,
len
,
items_read
,
error
);
if
(
error
)
if
(
*
error
)
return
NULL
;
if
(
utf16_len
<
0
)
return
NULL
;
ret
=
g_malloc
((
1
+
utf16_len
)
*
sizeof
(
gunichar2
));
/* Common case */
for
(
in_pos
=
0
;
in_pos
<
len
;
in_pos
++
)
{
ch
=
(
guchar
)
str
[
in_pos
];
if
(
ch
>=
0x80
)
break
;
ret
[
out_pos
++
]
=
ch
;
}
for
(;
in_pos
<
len
;
in_pos
++
)
{
ch
=
(
guchar
)
str
[
in_pos
];
if
(
mb_size
==
0
)
{
if
(
ch
<
0x80
)
ret
[
out_pos
++
]
=
ch
;
else
if
((
ch
&
0xE0
)
==
0xC0
)
{
codepoint
=
ch
&
0x1F
;
mb_size
=
2
;
}
else
if
((
ch
&
0xF0
)
==
0xE0
)
{
codepoint
=
ch
&
0x0F
;
mb_size
=
3
;
}
else
if
((
ch
&
0xF8
)
==
0xF0
)
{
codepoint
=
ch
&
7
;
mb_size
=
4
;
}
else
if
((
ch
&
0xFC
)
==
0xF8
)
{
codepoint
=
ch
&
3
;
mb_size
=
5
;
}
else
if
((
ch
&
0xFE
)
==
0xFC
)
{
codepoint
=
ch
&
3
;
mb_size
=
6
;
}
else
{
/* invalid utf-8 sequence */
codepoint
=
0
;
mb_remain
=
mb_size
=
0
;
}
if
(
mb_size
>
1
)
mb_remain
=
mb_size
-
1
;
}
else
{
if
((
ch
&
0xC0
)
==
0x80
)
{
codepoint
=
(
codepoint
<<
6
)
|
(
ch
&
0x3F
);
if
(
--
mb_remain
==
0
)
{
/* multi byte character is fully consumed now. */
if
(
codepoint
<
0x10000
)
{
ret
[
out_pos
++
]
=
(
gunichar2
)(
codepoint
%
0x10000
);
}
else
if
(
codepoint
<
0x110000
)
{
/* surrogate pair */
codepoint
-=
0x10000
;
ret
[
out_pos
++
]
=
(
gunichar2
)((
codepoint
>>
10
)
+
0xD800
);
ret
[
out_pos
++
]
=
(
gunichar2
)((
codepoint
&
0x3FF
)
+
0xDC00
);
}
else
{
/* invalid utf-8 sequence (excess) */
codepoint
=
0
;
mb_remain
=
0
;
}
mb_size
=
0
;
}
}
else
{
/* invalid utf-8 sequence */
codepoint
=
0
;
mb_remain
=
mb_size
=
0
;
}
}
}
ret
[
out_pos
]
=
0
;
if
(
items_written
)
*
items_written
=
out_pos
;
return
ret
;
}
gchar
*
g_utf16_to_utf8
(
const
gunichar2
*
str
,
glong
len
,
glong
*
items_read
,
glong
*
items_written
,
GError
**
error
)
{
...
...
@@ -288,6 +316,8 @@ g_utf16_to_utf8 (const gunichar2 *str, glong len, glong *items_read, glong *item
out_pos
=
0
;
surrogate
=
FALSE
;
if
(
items_read
)
*
items_read
=
0
;
if
(
items_written
)
*
items_written
=
0
;
utf8_len
=
utf16_to_utf8_len
(
str
,
len
,
items_read
,
error
);
...
...
@@ -308,6 +338,7 @@ g_utf16_to_utf8 (const gunichar2 *str, glong len, glong *items_read, glong *item
}
else
{
surrogate
=
0
;
/* invalid surrogate pair */
++
in_pos
;
continue
;
}
}
else
{
...
...
@@ -324,6 +355,7 @@ g_utf16_to_utf8 (const gunichar2 *str, glong len, glong *items_read, glong *item
else
if
(
ch
>=
0xD800
&&
ch
<=
0xDBFF
)
surrogate
=
ch
;
else
if
(
ch
>=
0xDC00
&&
ch
<=
0xDFFF
)
{
++
in_pos
;
/* invalid surrogate pair */
continue
;
}
...
...
eglib/src/unicode-data.h
浏览文件 @
7ec3cabd
...
...
@@ -40,7 +40,7 @@ static const CodePointRange unicode_category_ranges [] = {
{
0x02F800
,
0x02FA40
},
{
0x0E0000
,
0x0E0200
},
{
0
,
0
}};
const
GUnicodeType
unicode_category_table0
[]
=
{
static
const
GUnicodeType
unicode_category_table0
[]
=
{
/* ==== 0-3400 ==== */
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
...
...
@@ -875,14 +875,14 @@ const GUnicodeType unicode_category_table0 [] = {
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
0
};
const
GUnicodeType
unicode_category_table1
[]
=
{
static
const
GUnicodeType
unicode_category_table1
[]
=
{
/* ==== 4DC0-4E00 ==== */
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
0
};
const
GUnicodeType
unicode_category_table2
[]
=
{
static
const
GUnicodeType
unicode_category_table2
[]
=
{
/* ==== A000-AA80 ==== */
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
6
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
...
...
@@ -1051,7 +1051,7 @@ const GUnicodeType unicode_category_table2 [] = {
7
,
7
,
7
,
12
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
12
,
10
,
0
,
0
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
0
,
0
,
21
,
21
,
21
,
21
,
0
};
const
GUnicodeType
unicode_category_table3
[]
=
{
static
const
GUnicodeType
unicode_category_table3
[]
=
{
/* ==== F900-10000 ==== */
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
...
...
@@ -1165,7 +1165,7 @@ const GUnicodeType unicode_category_table3 [] = {
0
,
0
,
7
,
7
,
7
,
7
,
7
,
7
,
0
,
0
,
7
,
7
,
7
,
0
,
0
,
0
,
23
,
23
,
25
,
24
,
26
,
23
,
23
,
0
,
26
,
25
,
25
,
25
,
25
,
26
,
26
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
26
,
26
,
0
};
const
GUnicodeType
unicode_category_table4
[]
=
{
static
const
GUnicodeType
unicode_category_table4
[]
=
{
/* ==== 10000-104C0 ==== */
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
0
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
...
...
@@ -1242,7 +1242,7 @@ const GUnicodeType unicode_category_table4 [] = {
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
0
,
0
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
0
};
const
GUnicodeType
unicode_category_table5
[]
=
{
static
const
GUnicodeType
unicode_category_table5
[]
=
{
/* ==== 10800-10A80 ==== */
7
,
7
,
7
,
7
,
7
,
7
,
0
,
0
,
7
,
0
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
...
...
@@ -1282,7 +1282,7 @@ const GUnicodeType unicode_category_table5 [] = {
7
,
7
,
7
,
7
,
0
,
0
,
0
,
0
,
12
,
12
,
12
,
0
,
0
,
0
,
0
,
12
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
0
};
const
GUnicodeType
unicode_category_table6
[]
=
{
static
const
GUnicodeType
unicode_category_table6
[]
=
{
/* ==== 12000-12480 ==== */
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
...
...
@@ -1356,7 +1356,7 @@ const GUnicodeType unicode_category_table6 [] = {
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
21
,
21
,
21
,
21
,
0
};
const
GUnicodeType
unicode_category_table7
[]
=
{
static
const
GUnicodeType
unicode_category_table7
[]
=
{
/* ==== 1D000-1D800 ==== */
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
...
...
@@ -1487,7 +1487,7 @@ const GUnicodeType unicode_category_table7 [] = {
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
0
};
const
GUnicodeType
unicode_category_table8
[]
=
{
static
const
GUnicodeType
unicode_category_table8
[]
=
{
/* ==== 1F000-1F0C0 ==== */
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
...
...
@@ -1499,7 +1499,7 @@ const GUnicodeType unicode_category_table8 [] = {
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
26
,
0
};
const
GUnicodeType
unicode_category_table9
[]
=
{
static
const
GUnicodeType
unicode_category_table9
[]
=
{
/* ==== 2F800-2FA40 ==== */
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
...
...
@@ -1535,7 +1535,7 @@ const GUnicodeType unicode_category_table9 [] = {
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
0
};
const
GUnicodeType
unicode_category_table10
[]
=
{
static
const
GUnicodeType
unicode_category_table10
[]
=
{
/* ==== E0000-E0200 ==== */
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
...
...
libgc/include/private/gcconfig.h
浏览文件 @
7ec3cabd
...
...
@@ -425,12 +425,14 @@
|| defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__CYGWIN__)
# define LARGE_CONFIG 1
# if defined(__LP64__) || defined(_WIN64)
#
define X86_64
#
define X86_64
# else
# define I386
# endif
# define MSWIN32
/* or Win64 */
# define mach_type_known
# define USE_MMAP
# define USE_MUNMAP
# endif
# if defined(_MSC_VER) && defined(_M_IA64)
# define IA64
...
...
mono/mini/debugger-agent.c
浏览文件 @
7ec3cabd
...
...
@@ -1387,6 +1387,12 @@ buffer_add_string (Buffer *buf, const char *str)
}
}
static
inline
void
buffer_replace_byte
(
Buffer
*
buf
,
int
offset
,
guint8
val
)
{
buf
->
buf
[
offset
]
=
val
;
}
static
inline
void
buffer_free
(
Buffer
*
buf
)
{
...
...
@@ -3025,6 +3031,7 @@ process_event (EventKind event, gpointer arg, gint32 il_offset, MonoContext *ctx
suspend_vm
();
}
buffer_replace_byte
(
&
buf
,
0
,
suspend_policy
);
send_success
=
send_packet
(
CMD_SET_EVENT
,
CMD_COMPOSITE
,
&
buf
);
g_slist_free
(
events
);
...
...
mono/mini/exceptions-amd64.c
浏览文件 @
7ec3cabd
...
...
@@ -39,24 +39,40 @@ static MonoW32ExceptionHandler ill_handler;
static
MonoW32ExceptionHandler
segv_handler
;
LPTOP_LEVEL_EXCEPTION_FILTER
old_win32_toplevel_exception_filter
;
guint64
win32_chained_exception_filter_result
;
gboolean
win32_chained_exception_filter_didrun
;
gpointer
win32_vectored_exception_handle
;
extern
gboolean
win32_chained_exception_needs_run
;
extern
int
(
*
gUnhandledExceptionHandler
)(
EXCEPTION_POINTERS
*
);
#define W32_SEH_HANDLE_EX(_ex) \
if (_ex##_handler) _ex##_handler(0, ep, sctx)
LONG
CALLBACK
seh_unhandled_exception_filter
(
EXCEPTION_POINTERS
*
ep
)
{
#ifndef MONO_CROSS_COMPILE
if
(
old_win32_toplevel_exception_filter
)
{
return
(
*
old_win32_toplevel_exception_filter
)(
ep
);
}
if
(
gUnhandledExceptionHandler
)
{
return
(
*
gUnhandledExceptionHandler
)(
ep
);
}
#endif
mono_handle_native_sigsegv
(
SIGSEGV
,
NULL
);
return
EXCEPTION_CONTINUE_SEARCH
;
}
/*
* Unhandled Exception Filter
* Top-level per-process exception handler.
*/
LONG
CALLBACK
seh_handler
(
EXCEPTION_POINTERS
*
ep
)
LONG
CALLBACK
seh_
vectored_exception_
handler
(
EXCEPTION_POINTERS
*
ep
)
{
EXCEPTION_RECORD
*
er
;
CONTEXT
*
ctx
;
MonoContext
*
sctx
;
LONG
res
;
win32_chained_exception_
filter_did
run
=
FALSE
;
win32_chained_exception_
needs_
run
=
FALSE
;
res
=
EXCEPTION_CONTINUE_EXECUTION
;
er
=
ep
->
ExceptionRecord
;
...
...
@@ -97,40 +113,55 @@ LONG CALLBACK seh_handler(EXCEPTION_POINTERS* ep)
break
;
}
/* Copy context back */
/* Nonvolatile */
ctx
->
Rsp
=
sctx
->
rsp
;
ctx
->
Rdi
=
sctx
->
rdi
;
ctx
->
Rsi
=
sctx
->
rsi
;
ctx
->
Rbx
=
sctx
->
rbx
;
ctx
->
Rbp
=
sctx
->
rbp
;
ctx
->
R12
=
sctx
->
r12
;
ctx
->
R13
=
sctx
->
r13
;
ctx
->
R14
=
sctx
->
r14
;
ctx
->
R15
=
sctx
->
r15
;
ctx
->
Rip
=
sctx
->
rip
;
/* Volatile But should not matter?*/
ctx
->
Rax
=
sctx
->
rax
;
ctx
->
Rcx
=
sctx
->
rcx
;
ctx
->
Rdx
=
sctx
->
rdx
;
g_free
(
sctx
);
if
(
win32_chained_exception_filter_didrun
)
res
=
win32_chained_exception_filter_result
;
if
(
win32_chained_exception_needs_run
)
{
/* Don't copy context back if we chained exception
* as the handler may have modfied the EXCEPTION_POINTERS
* directly. We don't pass sigcontext to chained handlers.
* Return continue search so the UnhandledExceptionFilter
* can correctly chain the exception.
*/
res
=
EXCEPTION_CONTINUE_SEARCH
;
}
else
{
/* Copy context back */
/* Nonvolatile */
ctx
->
Rsp
=
sctx
->
rsp
;
ctx
->
Rdi
=
sctx
->
rdi
;
ctx
->
Rsi
=
sctx
->
rsi
;
ctx
->
Rbx
=
sctx
->
rbx
;
ctx
->
Rbp
=
sctx
->
rbp
;
ctx
->
R12
=
sctx
->
r12
;
ctx
->
R13
=
sctx
->
r13
;
ctx
->
R14
=
sctx
->
r14
;
ctx
->
R15
=
sctx
->
r15
;
ctx
->
Rip
=
sctx
->
rip
;
/* Volatile But should not matter?*/
ctx
->
Rax
=
sctx
->
rax
;
ctx
->
Rcx
=
sctx
->
rcx
;
ctx
->
Rdx
=
sctx
->
rdx
;
}
/* TODO: Find right place to free this in stack overflow case */
if
(
er
->
ExceptionCode
!=
EXCEPTION_STACK_OVERFLOW
)
g_free
(
sctx
);
return
res
;
}
void
win32_seh_init
()
{
old_win32_toplevel_exception_filter
=
SetUnhandledExceptionFilter
(
seh_handler
);
old_win32_toplevel_exception_filter
=
SetUnhandledExceptionFilter
(
seh_unhandled_exception_filter
);
win32_vectored_exception_handle
=
AddVectoredExceptionHandler
(
1
,
seh_vectored_exception_handler
);
}
void
win32_seh_cleanup
()
{
if
(
old_win32_toplevel_exception_filter
)
SetUnhandledExceptionFilter
(
old_win32_toplevel_exception_filter
);
guint32
ret
=
0
;
if
(
old_win32_toplevel_exception_filter
)
SetUnhandledExceptionFilter
(
old_win32_toplevel_exception_filter
);
ret
=
RemoveVectoredExceptionHandler
(
win32_vectored_exception_handle
);
g_assert
(
ret
);
}
void
win32_seh_set_handler
(
int
type
,
MonoW32ExceptionHandler
handler
)
...
...
mono/mini/exceptions-x86.c
浏览文件 @
7ec3cabd
...
...
@@ -43,8 +43,9 @@ static MonoW32ExceptionHandler ill_handler;
static
MonoW32ExceptionHandler
segv_handler
;
LPTOP_LEVEL_EXCEPTION_FILTER
old_win32_toplevel_exception_filter
;
guint64
win32_chained_exception_filter_result
;
gboolean
win32_chained_exception_filter_didrun
;
gpointer
win32_vectored_exception_handle
;
extern
gboolean
win32_chained_exception_needs_run
;
extern
int
(
*
gUnhandledExceptionHandler
)(
EXCEPTION_POINTERS
*
);
#ifndef PROCESS_CALLBACK_FILTER_ENABLED
# define PROCESS_CALLBACK_FILTER_ENABLED 1
...
...
@@ -179,18 +180,33 @@ win32_handle_stack_overflow (EXCEPTION_POINTERS* ep, struct sigcontext *sctx)
restore_stack
(
sctx
);
}
LONG
CALLBACK
seh_unhandled_exception_filter
(
EXCEPTION_POINTERS
*
ep
)
{
#ifndef MONO_CROSS_COMPILE
if
(
old_win32_toplevel_exception_filter
)
{
return
(
*
old_win32_toplevel_exception_filter
)(
ep
);
}
if
(
gUnhandledExceptionHandler
)
{
return
(
*
gUnhandledExceptionHandler
)(
ep
);
}
#endif
mono_handle_native_sigsegv
(
SIGSEGV
,
NULL
);
return
EXCEPTION_CONTINUE_SEARCH
;
}
/*
* Unhandled Exception Filter
* Top-level per-process exception handler.
*/
LONG
CALLBACK
seh_handler
(
EXCEPTION_POINTERS
*
ep
)
LONG
CALLBACK
seh_
vectored_exception_
handler
(
EXCEPTION_POINTERS
*
ep
)
{
EXCEPTION_RECORD
*
er
;
CONTEXT
*
ctx
;
struct
sigcontext
*
sctx
;
LONG
res
;
win32_chained_exception_
filter_did
run
=
FALSE
;
win32_chained_exception_
needs_
run
=
FALSE
;
res
=
EXCEPTION_CONTINUE_EXECUTION
;
er
=
ep
->
ExceptionRecord
;
...
...
@@ -231,11 +247,14 @@ LONG CALLBACK seh_handler(EXCEPTION_POINTERS* ep)
break
;
}
if
(
win32_chained_exception_
filter_did
run
)
{
if
(
win32_chained_exception_
needs_
run
)
{
/* Don't copy context back if we chained exception
* as the handler may have modfied the EXCEPTION_POINTERS
* directly. We don't pass sigcontext to chained handlers. */
res
=
win32_chained_exception_filter_result
;
* directly. We don't pass sigcontext to chained handlers.
* Return continue search so the UnhandledExceptionFilter
* can correctly chain the exception.
*/
res
=
EXCEPTION_CONTINUE_SEARCH
;
}
else
{
/* Copy context back */
ctx
->
Eax
=
sctx
->
eax
;
...
...
@@ -263,15 +282,18 @@ void win32_seh_init()
if
(
!
restore_stack
)
restore_stack
=
mono_win32_get_handle_stackoverflow
();
old_win32_toplevel_exception_filter
=
SetUnhandledExceptionFilter
(
seh_handler
);
/* use the following instead of SetUnhandledExceptionFilter to debug SEH in Visual Studio
* AddVectoredExceptionHandler (1, seh_handler);
*/
old_win32_toplevel_exception_filter
=
SetUnhandledExceptionFilter
(
seh_unhandled_exception_filter
);
win32_vectored_exception_handle
=
AddVectoredExceptionHandler
(
1
,
seh_vectored_exception_handler
);
}
void
win32_seh_cleanup
()
{
if
(
old_win32_toplevel_exception_filter
)
SetUnhandledExceptionFilter
(
old_win32_toplevel_exception_filter
);
guint32
ret
=
0
;
if
(
old_win32_toplevel_exception_filter
)
SetUnhandledExceptionFilter
(
old_win32_toplevel_exception_filter
);
ret
=
RemoveVectoredExceptionHandler
(
win32_vectored_exception_handle
);
g_assert
(
ret
);
}
void
win32_seh_set_handler
(
int
type
,
MonoW32ExceptionHandler
handler
)
...
...
mono/mini/mini-exceptions.c
浏览文件 @
7ec3cabd
...
...
@@ -811,7 +811,8 @@ ves_icall_get_frame_info (gint32 skip, MonoBoolean need_file_info,
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_XDOMAIN_DISPATCH
||
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK
||
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_REMOTING_INVOKE
||
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_NATIVE_TO_MANAGED
)
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_NATIVE_TO_MANAGED
||
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_DELEGATE_INVOKE
)
continue
;
if
(
ji
->
method
->
wrapper_type
==
MONO_WRAPPER_MANAGED_TO_NATIVE
&&
ji
->
method
==
last_method
)
{
...
...
mono/mini/mini-windows.c
浏览文件 @
7ec3cabd
...
...
@@ -50,10 +50,7 @@
#include "jit-icalls.h"
extern
LPTOP_LEVEL_EXCEPTION_FILTER
old_win32_toplevel_exception_filter
;
extern
guint64
win32_chained_exception_filter_result
;
extern
gboolean
win32_chained_exception_filter_didrun
;
extern
int
(
*
gUnhandledExceptionHandler
)(
EXCEPTION_POINTERS
*
);
gboolean
win32_chained_exception_needs_run
;
void
mono_runtime_install_handlers
(
void
)
...
...
@@ -86,24 +83,8 @@ mono_runtime_cleanup_handlers (void)
gboolean
SIG_HANDLER_SIGNATURE
(
mono_chain_signal
)
{
#ifndef MONO_CROSS_COMPILE
int
signal
=
_dummy
;
GET_CONTEXT
;
if
(
old_win32_toplevel_exception_filter
)
{
win32_chained_exception_filter_didrun
=
TRUE
;
win32_chained_exception_filter_result
=
(
*
old_win32_toplevel_exception_filter
)(
info
);
return
TRUE
;
}
if
(
gUnhandledExceptionHandler
)
{
win32_chained_exception_filter_didrun
=
TRUE
;
win32_chained_exception_filter_result
=
(
*
gUnhandledExceptionHandler
)(
info
);
return
TRUE
;
}
#endif
return
FALSE
;
win32_chained_exception_needs_run
=
TRUE
;
return
TRUE
;
}
static
HANDLE
win32_main_thread
;
...
...
msvc/libgc.vcproj
浏览文件 @
7ec3cabd
...
...
@@ -45,7 +45,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"0"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"_DEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"_DEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
MinimalRebuild=
"true"
BasicRuntimeChecks=
"3"
RuntimeLibrary=
"1"
...
...
@@ -112,7 +112,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"0"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"_DEBUG;__x86_64__;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"_DEBUG;__x86_64__;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
MinimalRebuild=
"true"
BasicRuntimeChecks=
"3"
RuntimeLibrary=
"3"
...
...
@@ -178,7 +178,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"1"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"NDEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"NDEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
RuntimeLibrary=
"0"
BufferSecurityCheck=
"true"
UsePrecompiledHeader=
"0"
...
...
@@ -242,7 +242,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"1"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"NDEBUG;__x86_64__;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"NDEBUG;__x86_64__;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
RuntimeLibrary=
"2"
BufferSecurityCheck=
"true"
UsePrecompiledHeader=
"0"
...
...
@@ -305,7 +305,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"0"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"_DEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"_DEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
MinimalRebuild=
"true"
BasicRuntimeChecks=
"3"
RuntimeLibrary=
"1"
...
...
@@ -372,7 +372,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"0"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"_DEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;
USE_MUNMAP;USE_MMAP;
$(NOINHERIT)"
PreprocessorDefinitions=
"_DEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024;$(NOINHERIT)"
MinimalRebuild=
"true"
BasicRuntimeChecks=
"3"
RuntimeLibrary=
"3"
...
...
@@ -438,7 +438,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"1"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"NDEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"NDEBUG;__i386__;TARGET_X86;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
RuntimeLibrary=
"0"
BufferSecurityCheck=
"true"
UsePrecompiledHeader=
"0"
...
...
@@ -502,7 +502,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"1"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"NDEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"NDEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
RuntimeLibrary=
"2"
BufferSecurityCheck=
"true"
UsePrecompiledHeader=
"0"
...
...
@@ -565,7 +565,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"1"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"NDEBUG;__i386__;TARGET_ARM;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"NDEBUG;__i386__;TARGET_ARM;i386;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
RuntimeLibrary=
"0"
BufferSecurityCheck=
"true"
UsePrecompiledHeader=
"0"
...
...
@@ -629,7 +629,7 @@
Name=
"VCCLCompilerTool"
Optimization=
"1"
AdditionalIncludeDirectories=
"..\libgc\include"
PreprocessorDefinitions=
"NDEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024
;USE_MUNMAP;USE_MMAP
"
PreprocessorDefinitions=
"NDEBUG;__x86_64__;TARGET_AMD64;WIN64;_WIN64;WIN32;_WIN32;__WIN32__;_WINDOWS;WINDOWS;PLATFORM_WIN32;TARGET_WIN32;_CRT_SECURE_NO_DEPRECATE;__STDC__;PACKAGE_NAME=\"libgc-mono\";PACKAGE_TARNAME=\"libgc-mono\";PACKAGE_VERSION=\"6.6\";"PACKAGE_STRING=\"libgc-mono 6.6\"";PACKAGE_BUGREPORT=\"Hans_Boehm@hp.com\";GC_WIN32_THREADS=1;NO_GETENV=1;GC_INSIDE_DLL=1;GC_NOT_DLL=1;STDC_HEADERS=1;HAVE_SYS_TYPES_H=1;HAVE_SYS_STAT_H=1;HAVE_STDLIB_H=1;HAVE_STRING_H=1;HAVE_MEMORY_H=1;HAVE_STRINGS_H=1;HAVE_INTTYPES_H=1;HAVE_STDINT_H=1;HAVE_UNISTD_H=1;SILENT=1;NO_SIGNALS=1;NO_EXECUTE_PERMISSION=1;JAVA_FINALIZATION=1;GC_GCJ_SUPPORT=1;ATOMIC_UNCOLLECTABLE=1;_IN_LIBGC=1;WINVER=0x0500;_WIN32_WINNT=0x0500;_WIN32_IE=0x0501;WIN32_THREADS;FD_SETSIZE=1024"
RuntimeLibrary=
"2"
BufferSecurityCheck=
"true"
UsePrecompiledHeader=
"0"
...
...
unity/unity_utils.c
浏览文件 @
7ec3cabd
...
...
@@ -64,11 +64,11 @@ FILE* unity_fopen( const char *name, const char *mode )
return
_wfopen
(
wideName
,
wideMode
);
}
LONG
CALLBACK
seh
_handler
(
EXCEPTION_POINTERS
*
ep
);
extern
LONG
CALLBACK
seh_vectored_exception
_handler
(
EXCEPTION_POINTERS
*
ep
);
LONG
mono_unity_seh_handler
(
EXCEPTION_POINTERS
*
ep
)
{
#if defined(TARGET_X86) || defined(TARGET_AMD64)
return
seh_handler
(
ep
);
return
seh_
vectored_exception_
handler
(
ep
);
#else
g_assert_not_reached
();
#endif
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录