Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
91a0e188
R
Rust
项目概览
int
/
Rust
接近 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
91a0e188
编写于
12月 03, 2014
作者:
M
Michael Woerister
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debuginfo: Add a rust-gdb shell script that will start GDB with Rust pretty printers enabled.
上级
d2368c3c
变更
101
展开全部
隐藏空白更改
内联
并排
Showing
101 changed file
with
396 addition
and
71 deletion
+396
-71
mk/clean.mk
mk/clean.mk
+3
-2
mk/debuggers.mk
mk/debuggers.mk
+88
-13
mk/main.mk
mk/main.mk
+8
-2
mk/prepare.mk
mk/prepare.mk
+25
-3
src/compiletest/runtest.rs
src/compiletest/runtest.rs
+4
-33
src/etc/gdb_load_rust_pretty_printers.py
src/etc/gdb_load_rust_pretty_printers.py
+12
-0
src/etc/rust-gdb
src/etc/rust-gdb
+23
-0
src/librustc/lint/builtin.rs
src/librustc/lint/builtin.rs
+1
-0
src/librustc_llvm/lib.rs
src/librustc_llvm/lib.rs
+2
-1
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/base.rs
+2
-0
src/librustc_trans/trans/debuginfo.rs
src/librustc_trans/trans/debuginfo.rs
+87
-5
src/rustllvm/RustWrapper.cpp
src/rustllvm/RustWrapper.cpp
+9
-3
src/test/debuginfo/basic-types-globals-metadata.rs
src/test/debuginfo/basic-types-globals-metadata.rs
+1
-0
src/test/debuginfo/basic-types-globals.rs
src/test/debuginfo/basic-types-globals.rs
+1
-0
src/test/debuginfo/basic-types-metadata.rs
src/test/debuginfo/basic-types-metadata.rs
+1
-0
src/test/debuginfo/basic-types-mut-globals.rs
src/test/debuginfo/basic-types-mut-globals.rs
+1
-0
src/test/debuginfo/basic-types.rs
src/test/debuginfo/basic-types.rs
+1
-0
src/test/debuginfo/borrowed-basic.rs
src/test/debuginfo/borrowed-basic.rs
+1
-0
src/test/debuginfo/borrowed-c-style-enum.rs
src/test/debuginfo/borrowed-c-style-enum.rs
+1
-0
src/test/debuginfo/borrowed-enum.rs
src/test/debuginfo/borrowed-enum.rs
+1
-0
src/test/debuginfo/borrowed-struct.rs
src/test/debuginfo/borrowed-struct.rs
+1
-0
src/test/debuginfo/borrowed-tuple.rs
src/test/debuginfo/borrowed-tuple.rs
+1
-0
src/test/debuginfo/borrowed-unique-basic.rs
src/test/debuginfo/borrowed-unique-basic.rs
+1
-1
src/test/debuginfo/box.rs
src/test/debuginfo/box.rs
+1
-0
src/test/debuginfo/boxed-struct.rs
src/test/debuginfo/boxed-struct.rs
+1
-0
src/test/debuginfo/by-value-non-immediate-argument.rs
src/test/debuginfo/by-value-non-immediate-argument.rs
+2
-0
src/test/debuginfo/by-value-self-argument-in-trait-impl.rs
src/test/debuginfo/by-value-self-argument-in-trait-impl.rs
+2
-0
src/test/debuginfo/c-style-enum-in-composite.rs
src/test/debuginfo/c-style-enum-in-composite.rs
+1
-0
src/test/debuginfo/c-style-enum.rs
src/test/debuginfo/c-style-enum.rs
+1
-0
src/test/debuginfo/closure-in-generic-function.rs
src/test/debuginfo/closure-in-generic-function.rs
+2
-0
src/test/debuginfo/destructured-fn-argument.rs
src/test/debuginfo/destructured-fn-argument.rs
+1
-0
src/test/debuginfo/destructured-for-loop-variable.rs
src/test/debuginfo/destructured-for-loop-variable.rs
+3
-0
src/test/debuginfo/destructured-local.rs
src/test/debuginfo/destructured-local.rs
+1
-0
src/test/debuginfo/evec-in-struct.rs
src/test/debuginfo/evec-in-struct.rs
+1
-0
src/test/debuginfo/function-arg-initialization.rs
src/test/debuginfo/function-arg-initialization.rs
+1
-3
src/test/debuginfo/function-arguments.rs
src/test/debuginfo/function-arguments.rs
+3
-0
src/test/debuginfo/function-prologue-stepping-no-stack-check.rs
...st/debuginfo/function-prologue-stepping-no-stack-check.rs
+1
-0
src/test/debuginfo/function-prologue-stepping-regular.rs
src/test/debuginfo/function-prologue-stepping-regular.rs
+1
-0
src/test/debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs
...test/debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs
+0
-1
src/test/debuginfo/gdb-pretty-struct-and-enums.rs
src/test/debuginfo/gdb-pretty-struct-and-enums.rs
+0
-1
src/test/debuginfo/generic-function.rs
src/test/debuginfo/generic-function.rs
+1
-0
src/test/debuginfo/generic-functions-nested.rs
src/test/debuginfo/generic-functions-nested.rs
+3
-0
src/test/debuginfo/generic-method-on-generic-struct.rs
src/test/debuginfo/generic-method-on-generic-struct.rs
+1
-0
src/test/debuginfo/generic-static-method-on-struct-and-enum.rs
...est/debuginfo/generic-static-method-on-struct-and-enum.rs
+3
-0
src/test/debuginfo/generic-struct-style-enum.rs
src/test/debuginfo/generic-struct-style-enum.rs
+3
-0
src/test/debuginfo/generic-struct.rs
src/test/debuginfo/generic-struct.rs
+3
-0
src/test/debuginfo/generic-trait-generic-static-default-method.rs
.../debuginfo/generic-trait-generic-static-default-method.rs
+1
-0
src/test/debuginfo/generic-tuple-style-enum.rs
src/test/debuginfo/generic-tuple-style-enum.rs
+2
-0
src/test/debuginfo/include_string.rs
src/test/debuginfo/include_string.rs
+1
-0
src/test/debuginfo/issue12886.rs
src/test/debuginfo/issue12886.rs
+3
-1
src/test/debuginfo/lexical-scope-in-for-loop.rs
src/test/debuginfo/lexical-scope-in-for-loop.rs
+2
-0
src/test/debuginfo/lexical-scope-in-if.rs
src/test/debuginfo/lexical-scope-in-if.rs
+1
-0
src/test/debuginfo/lexical-scope-in-match.rs
src/test/debuginfo/lexical-scope-in-match.rs
+1
-0
src/test/debuginfo/lexical-scope-in-stack-closure.rs
src/test/debuginfo/lexical-scope-in-stack-closure.rs
+2
-0
src/test/debuginfo/lexical-scope-in-unconditional-loop.rs
src/test/debuginfo/lexical-scope-in-unconditional-loop.rs
+2
-0
src/test/debuginfo/lexical-scope-in-unique-closure.rs
src/test/debuginfo/lexical-scope-in-unique-closure.rs
+3
-0
src/test/debuginfo/lexical-scope-in-while.rs
src/test/debuginfo/lexical-scope-in-while.rs
+1
-0
src/test/debuginfo/lexical-scope-with-macro.rs
src/test/debuginfo/lexical-scope-with-macro.rs
+1
-0
src/test/debuginfo/lexical-scopes-in-block-expression.rs
src/test/debuginfo/lexical-scopes-in-block-expression.rs
+1
-0
src/test/debuginfo/limited-debuginfo.rs
src/test/debuginfo/limited-debuginfo.rs
+1
-0
src/test/debuginfo/method-on-enum.rs
src/test/debuginfo/method-on-enum.rs
+2
-0
src/test/debuginfo/method-on-generic-struct.rs
src/test/debuginfo/method-on-generic-struct.rs
+2
-0
src/test/debuginfo/method-on-struct.rs
src/test/debuginfo/method-on-struct.rs
+3
-0
src/test/debuginfo/method-on-trait.rs
src/test/debuginfo/method-on-trait.rs
+3
-0
src/test/debuginfo/method-on-tuple-struct.rs
src/test/debuginfo/method-on-tuple-struct.rs
+3
-0
src/test/debuginfo/multiple-functions-equal-var-names.rs
src/test/debuginfo/multiple-functions-equal-var-names.rs
+1
-0
src/test/debuginfo/multiple-functions.rs
src/test/debuginfo/multiple-functions.rs
+1
-0
src/test/debuginfo/name-shadowing-and-scope-nesting.rs
src/test/debuginfo/name-shadowing-and-scope-nesting.rs
+2
-0
src/test/debuginfo/nil-enum.rs
src/test/debuginfo/nil-enum.rs
+1
-0
src/test/debuginfo/no-debug-attribute.rs
src/test/debuginfo/no-debug-attribute.rs
+1
-0
src/test/debuginfo/option-like-enum.rs
src/test/debuginfo/option-like-enum.rs
+2
-0
src/test/debuginfo/packed-struct-with-destructor.rs
src/test/debuginfo/packed-struct-with-destructor.rs
+1
-0
src/test/debuginfo/packed-struct.rs
src/test/debuginfo/packed-struct.rs
+1
-0
src/test/debuginfo/recursive-enum.rs
src/test/debuginfo/recursive-enum.rs
+1
-0
src/test/debuginfo/recursive-struct.rs
src/test/debuginfo/recursive-struct.rs
+1
-0
src/test/debuginfo/self-in-default-method.rs
src/test/debuginfo/self-in-default-method.rs
+1
-0
src/test/debuginfo/self-in-generic-default-method.rs
src/test/debuginfo/self-in-generic-default-method.rs
+1
-0
src/test/debuginfo/shadowed-argument.rs
src/test/debuginfo/shadowed-argument.rs
+3
-0
src/test/debuginfo/shadowed-variable.rs
src/test/debuginfo/shadowed-variable.rs
+2
-0
src/test/debuginfo/simd.rs
src/test/debuginfo/simd.rs
+1
-0
src/test/debuginfo/simple-lexical-scope.rs
src/test/debuginfo/simple-lexical-scope.rs
+3
-0
src/test/debuginfo/simple-struct.rs
src/test/debuginfo/simple-struct.rs
+3
-2
src/test/debuginfo/simple-tuple.rs
src/test/debuginfo/simple-tuple.rs
+1
-0
src/test/debuginfo/static-method-on-struct-and-enum.rs
src/test/debuginfo/static-method-on-struct-and-enum.rs
+2
-0
src/test/debuginfo/struct-in-enum.rs
src/test/debuginfo/struct-in-enum.rs
+1
-0
src/test/debuginfo/struct-in-struct.rs
src/test/debuginfo/struct-in-struct.rs
+1
-0
src/test/debuginfo/struct-style-enum.rs
src/test/debuginfo/struct-style-enum.rs
+1
-0
src/test/debuginfo/struct-with-destructor.rs
src/test/debuginfo/struct-with-destructor.rs
+1
-0
src/test/debuginfo/trait-generic-static-default-method.rs
src/test/debuginfo/trait-generic-static-default-method.rs
+2
-0
src/test/debuginfo/trait-pointers.rs
src/test/debuginfo/trait-pointers.rs
+1
-0
src/test/debuginfo/tuple-in-struct.rs
src/test/debuginfo/tuple-in-struct.rs
+1
-0
src/test/debuginfo/tuple-in-tuple.rs
src/test/debuginfo/tuple-in-tuple.rs
+1
-0
src/test/debuginfo/tuple-struct.rs
src/test/debuginfo/tuple-struct.rs
+3
-0
src/test/debuginfo/tuple-style-enum.rs
src/test/debuginfo/tuple-style-enum.rs
+1
-0
src/test/debuginfo/type-names.rs
src/test/debuginfo/type-names.rs
+2
-0
src/test/debuginfo/unique-enum.rs
src/test/debuginfo/unique-enum.rs
+1
-0
src/test/debuginfo/var-captured-in-nested-closure.rs
src/test/debuginfo/var-captured-in-nested-closure.rs
+1
-0
src/test/debuginfo/var-captured-in-sendable-closure.rs
src/test/debuginfo/var-captured-in-sendable-closure.rs
+1
-0
src/test/debuginfo/var-captured-in-stack-closure.rs
src/test/debuginfo/var-captured-in-stack-closure.rs
+1
-0
src/test/debuginfo/vec-slices.rs
src/test/debuginfo/vec-slices.rs
+1
-0
src/test/debuginfo/vec.rs
src/test/debuginfo/vec.rs
+1
-0
未找到文件。
mk/clean.mk
浏览文件 @
91a0e188
...
...
@@ -64,6 +64,7 @@ clean-generic-$(2)-$(1):
-name
'*.dll'
-o
\
-name
'*.def'
-o
\
-name
'*.py'
-o
\
-name
'*.pyc'
-o
\
-name
'*.bc'
\
\)
\
| xargs
rm
-f
...
...
@@ -79,7 +80,7 @@ define CLEAN_HOST_STAGE_N
clean$(1)_H_$(2)
:
\
$$(foreach crate
,
$$(CRATES)
,
clean$(1)_H_$(2)-lib-$$(crate))
\
$$(foreach tool
,
$$(TOOLS) $$(DEBUGGER_BIN_SCRIPTS)
,
clean$(1)_H_$(2)-tool-$$(tool))
$$(foreach tool
,
$$(TOOLS) $$(DEBUGGER_BIN_SCRIPTS
_ALL
)
,
clean$(1)_H_$(2)-tool-$$(tool))
$
$(Q)
rm
-fr
$(2)
/rt/libbacktrace
clean$(1)_H_$(2)-tool-%
:
...
...
@@ -99,7 +100,7 @@ define CLEAN_TARGET_STAGE_N
clean$(1)_T_$(2)_H_$(3)
:
\
$$(foreach crate
,
$$(CRATES)
,
clean$(1)_T_$(2)_H_$(3)-lib-$$(crate))
\
$$(foreach tool
,
$$(TOOLS) $$(DEBUGGER_BIN_SCRIPTS)
,
clean$(1)_T_$(2)_H_$(3)-tool-$$(tool))
$$(foreach tool
,
$$(TOOLS) $$(DEBUGGER_BIN_SCRIPTS
_ALL
)
,
clean$(1)_T_$(2)_H_$(3)-tool-$$(tool))
$
$(Q)
rm
-f
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/libmorestack.a
$
$(Q)
rm
-f
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/libcompiler-rt.a
$(Q)
rm
-f
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/librun_pass_stage
*
# For unix
...
...
mk/debuggers.mk
浏览文件 @
91a0e188
...
...
@@ -12,26 +12,77 @@
# Copy debugger related scripts
######################################################################
DEBUGGER_RUSTLIB_ETC_SCRIPTS
=
lldb_rust_formatters.py
DEBUGGER_BIN_SCRIPTS
=
rust-lldb
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ABS
=
$(
foreach
script,
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS)
,
\
$(CFG_SRC_DIR)
src/etc/
$(script)
)
DEBUGGER_BIN_SCRIPTS_ABS
=
$(
foreach
script,
$(DEBUGGER_BIN_SCRIPTS)
,
\
$(CFG_SRC_DIR)
src/etc/
$(script)
)
## GDB ##
DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB
=
gdb_load_rust_pretty_printers.py
\
gdb_rust_pretty_printing.py
DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS
=
\
$(
foreach
script,
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB)
,
\
$(CFG_SRC_DIR)
src/etc/
$(script)
)
DEBUGGER_BIN_SCRIPTS_GDB
=
rust-gdb
DEBUGGER_BIN_SCRIPTS_GDB_ABS
=
\
$(
foreach
script,
$(DEBUGGER_BIN_SCRIPTS_GDB)
,
\
$(CFG_SRC_DIR)
src/etc/
$(script)
)
## LLDB ##
DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB
=
lldb_rust_formatters.py
DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS
=
\
$(
foreach
script,
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB)
,
\
$(CFG_SRC_DIR)
src/etc/
$(script)
)
DEBUGGER_BIN_SCRIPTS_LLDB
=
rust-lldb
DEBUGGER_BIN_SCRIPTS_LLDB_ABS
=
\
$(
foreach
script,
$(DEBUGGER_BIN_SCRIPTS_LLDB)
,
\
$(CFG_SRC_DIR)
src/etc/
$(script)
)
## ALL ##
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL
=
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB)
\
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB)
DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS
=
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS)
\
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
DEBUGGER_BIN_SCRIPTS_ALL
=
$(DEBUGGER_BIN_SCRIPTS_GDB)
\
$(DEBUGGER_BIN_SCRIPTS_LLDB)
DEBUGGER_BIN_SCRIPTS_ALL_ABS
=
$(DEBUGGER_BIN_SCRIPTS_GDB_ABS)
\
$(DEBUGGER_BIN_SCRIPTS_LLDB_ABS)
DEBUGGER_SCRIPTS_ALL
=
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ABS)
$(DEBUGGER_BIN_SCRIPTS_ABS)
# $(1) - the stage to copy to
# $(2) - the host triple
define
DEF_INSTALL_DEBUGGER_SCRIPTS_HOST
tmp/install-debugger-scripts$(1)_H_$(2).done
:
$$(DEBUGGER_SCRIPTS_ALL)
tmp/install-debugger-scripts$(1)_H_$(2)-gdb.done
:
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS)
\
$$(DEBUGGER_BIN_SCRIPTS_GDB_ABS)
$(Q)
mkdir
-p
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
mkdir
-p
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
install
$
$(DEBUGGER_BIN_SCRIPTS_GDB_ABS)
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
install
$
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS)
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
touch
$$
@
tmp/install-debugger-scripts$(1)_H_$(2)-lldb.done
:
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
\
$$(DEBUGGER_BIN_SCRIPTS_LLDB_ABS)
$(Q)
mkdir
-p
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
mkdir
-p
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
install
$
$(DEBUGGER_BIN_SCRIPTS_LLDB_ABS)
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
install
$
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
touch
$$
@
tmp/install-debugger-scripts$(1)_H_$(2)-all.done
:
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS)
\
$$(DEBUGGER_BIN_SCRIPTS_ALL_ABS)
$(Q)
mkdir
-p
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
mkdir
-p
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
install
$
(DEBUGGER_BIN_SCRIPTS
_ABS)
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
install
$
(DEBUGGER_RUSTLIB_ETC_SCRIPTS
_ABS)
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
install
$
$(DEBUGGER_BIN_SCRIPTS_ALL
_ABS)
$$
(
HBIN
$(1)
_H_
$(2)
)
$(Q)
install
$
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL
_ABS)
$$
(
HLIB
$(1)
_H_
$(2)
)
/rustlib/etc
$(Q)
touch
$$
@
tmp/install-debugger-scripts$(1)_H_$(2)-none.done
:
$(Q)
touch
$$
@
endef
# Expand host make-targets for all stages
...
...
@@ -44,12 +95,36 @@ $(foreach stage,$(STAGES), \
# $(3) is the host triple
define
DEF_INSTALL_DEBUGGER_SCRIPTS_TARGET
tmp/install-debugger-scripts$(1)_T_$(2)_H_$(3).done
:
$$(DEBUGGER_SCRIPTS_ALL)
tmp/install-debugger-scripts$(1)_T_$(2)_H_$(3)-gdb.done
:
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS)
\
$$(DEBUGGER_BIN_SCRIPTS_GDB_ABS)
$(Q)
mkdir
-p
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
mkdir
-p
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
install
$(DEBUGGER_BIN_SCRIPTS_GDB_ABS)
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
install
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS)
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
touch
$$
@
tmp/install-debugger-scripts$(1)_T_$(2)_H_$(3)-lldb.done
:
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
\
$$(DEBUGGER_BIN_SCRIPTS_LLDB_ABS)
$(Q)
mkdir
-p
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
mkdir
-p
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
install
$(DEBUGGER_BIN_SCRIPTS_ABS)
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
install
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ABS)
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
install
$(DEBUGGER_BIN_SCRIPTS_
LLDB_
ABS)
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
install
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_
LLDB_
ABS)
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
touch
$$
@
tmp/install-debugger-scripts$(1)_T_$(2)_H_$(3)-all.done
:
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS)
\
$$(DEBUGGER_BIN_SCRIPTS_ALL_ABS)
$(Q)
mkdir
-p
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
mkdir
-p
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
install
$(DEBUGGER_BIN_SCRIPTS_ALL_ABS)
$$
(
TBIN
$(1)
_T_
$(2)
_H_
$(3)
)
$(Q)
install
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS)
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/rustlib/etc
$(Q)
touch
$$
@
tmp/install-debugger-scripts$(1)_T_$(2)_H_$(3)-none.done
:
$(Q)
touch
$$
@
endef
# Expand target make-targets for all stages
...
...
mk/main.mk
浏览文件 @
91a0e188
...
...
@@ -325,6 +325,12 @@ export CFG_DISABLE_INJECT_STD_VERSION
# Per-stage targets and runner
######################################################################
# Valid setting-strings are 'all', 'none', 'gdb', 'lldb'
# This 'function' will determine which debugger scripts to copy based on a
# target triple. See debuggers.mk for more information.
TRIPLE_TO_DEBUGGER_SCRIPT_SETTING
=
\
$(
if
$(
findstring
windows,
$(1)
)
,none,
$(
if
$(
findstring
darwin,
$(1)
)
,lldb,gdb
))
STAGES
=
0 1 2 3
define
SREQ
...
...
@@ -357,7 +363,7 @@ else
HSREQ$(1)_H_$(3)
=
\
$$
(
HBIN
$(1)
_H_
$(3)
)
/rustc
$$
(
X_
$(3)
)
\
$
$(MKFILE_DEPS)
\
tmp/install-debugger-scripts
$(1)
_H_
$(3)
.done
tmp/install-debugger-scripts
$(1)
_H_
$(3)
-
$
$(
call
TRIPLE_TO_DEBUGGER_SCRIPT_SETTING,
$(3)
)
.done
endif
# Prerequisites for using the stageN compiler to build target artifacts
...
...
@@ -372,7 +378,7 @@ SREQ$(1)_T_$(2)_H_$(3) = \
$$
(
TSREQ
$(1)
_T_
$(2)
_H_
$(3)
)
\
$
$(
foreach
dep,
$
$(TARGET_CRATES)
,
\
$$
(
TLIB
$(1)
_T_
$(2)
_H_
$(3)
)
/stamp.
$
$(dep)
)
\
tmp/install-debugger-scripts
$(1)
_T_
$(2)
_H_
$(3)
.done
tmp/install-debugger-scripts
$(1)
_T_
$(2)
_H_
$(3)
-
$
$(
call
TRIPLE_TO_DEBUGGER_SCRIPT_SETTING,
$(2)
)
.done
# Prerequisites for a working stageN compiler and complete set of target
# libraries
...
...
mk/prepare.mk
浏览文件 @
91a0e188
...
...
@@ -144,6 +144,27 @@ prepare-target-$(2)-host-$(3)-$(1)-$(4): prepare-maybe-clean-$(4) \
$$(call
PREPARE_LIB,libcompiler-rt.a),),),)
endef
define
INSTALL_GDB_DEBUGGER_SCRIPTS_COMMANDS
$(Q)$(PREPARE_BIN_CMD)
$(DEBUGGER_BIN_SCRIPTS_GDB_ABS)
$(PREPARE_DEST_BIN_DIR)
$(Q)$(PREPARE_LIB_CMD)
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_GDB_ABS)
$(PREPARE_DEST_LIB_DIR)/rustlib/etc
endef
define
INSTALL_LLDB_DEBUGGER_SCRIPTS_COMMANDS
$(Q)$(PREPARE_BIN_CMD)
$(DEBUGGER_BIN_SCRIPTS_LLDB_ABS)
$(PREPARE_DEST_BIN_DIR)
$(Q)$(PREPARE_LIB_CMD)
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_LLDB_ABS)
$(PREPARE_DEST_LIB_DIR)/rustlib/etc
endef
define
INSTALL_NO_DEBUGGER_SCRIPTS_COMMANDS
$(Q)echo
"No debugger scripts will be installed for host $(PREPARE_HOST)"
endef
# $(1) is PREPARE_HOST
INSTALL_DEBUGGER_SCRIPT_COMMANDS
=
$(
if
$(
findstring
windows,
$(1)
)
,
\
$(INSTALL_NO_DEBUGGER_SCRIPTS_COMMANDS)
,
\
$(
if
$(
findstring
darwin,
$(1)
)
,
\
$(INSTALL_LLDB_DEBUGGER_SCRIPTS_COMMANDS)
,
\
$(INSTALL_GDB_DEBUGGER_SCRIPTS_COMMANDS)
))
define
DEF_PREPARE
prepare-base-$(1)
:
PREPARE_SOURCE_DIR=$$(PREPARE_HOST)/stage$$(PREPARE_STAGE)
...
...
@@ -170,9 +191,10 @@ prepare-host-dirs-$(1): prepare-maybe-clean-$(1)
$
$(
call
PREPARE_DIR,
$
$(PREPARE_DEST_LIB_DIR)
/rustlib/etc
)
$
$(
call
PREPARE_DIR,
$
$(PREPARE_DEST_MAN_DIR)
)
prepare-debugger-scripts-$(1)
:
prepare-host-dirs-$(1) $(DEBUGGER_SCRIPTS_ALL)
$
$(Q)
$
$(PREPARE_BIN_CMD)
$(DEBUGGER_BIN_SCRIPTS_ABS)
$
$(PREPARE_DEST_BIN_DIR)
$
$(Q)
$
$(PREPARE_LIB_CMD)
$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ABS)
$
$(PREPARE_DEST_LIB_DIR)
/rustlib/etc
prepare-debugger-scripts-$(1)
:
prepare-host-dirs-$(1)
\
$$(DEBUGGER_BIN_SCRIPTS_ALL_ABS)
\
$$(DEBUGGER_RUSTLIB_ETC_SCRIPTS_ALL_ABS)
$
$(
call
INSTALL_DEBUGGER_SCRIPT_COMMANDS,
$
$(PREPARE_HOST)
)
$$(foreach
tool,$$(PREPARE_TOOLS),
\
$$(foreach
host,$$(CFG_HOST),
\
...
...
src/compiletest/runtest.rs
浏览文件 @
91a0e188
...
...
@@ -367,7 +367,6 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
let
DebuggerCommands
{
commands
,
check_lines
,
use_gdb_pretty_printer
,
breakpoint_lines
}
=
parse_debugger_commands
(
testfile
,
"gdb"
);
let
mut
cmds
=
commands
.connect
(
"
\n
"
);
...
...
@@ -521,16 +520,11 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
if
header
::
gdb_version_to_int
(
version
.as_slice
())
>
header
::
gdb_version_to_int
(
"7.4"
)
{
// Add the directory containing the pretty printers to
// GDB's script auto loading safe path
...
// GDB's script auto loading safe path
script_str
.push_str
(
format!
(
"add-auto-load-safe-path {}
\n
"
,
rust_pp_module_abs_path
.replace
(
"
\\
"
,
"
\\\\
"
)
.as_slice
())
.as_slice
());
// ... and also the test directory
script_str
.push_str
(
format!
(
"add-auto-load-safe-path {}
\n
"
,
config
.build_base
.as_str
()
.unwrap
()
.replace
(
"
\\
"
,
"
\\\\
"
))
.as_slice
());
}
}
_
=>
{
...
...
@@ -543,6 +537,9 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
// pretty printing, it just tells GDB to print values on one line:
script_str
.push_str
(
"set print pretty off
\n
"
);
// Add the pretty printer directory to GDB's source-file search path
script_str
.push_str
(
format!
(
"directory {}
\n
"
,
rust_pp_module_abs_path
)[]);
// Load the target executable
script_str
.push_str
(
format!
(
"file {}
\n
"
,
exe_file
.as_str
()
.unwrap
()
.replace
(
"
\\
"
,
"
\\\\
"
))
...
...
@@ -564,12 +561,6 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
script_str
.as_slice
(),
"debugger.script"
);
if
use_gdb_pretty_printer
{
// Only emit the gdb auto-loading script if pretty printers
// should actually be loaded
dump_gdb_autoload_script
(
config
,
testfile
);
}
// run debugger script with gdb
#[cfg(windows)]
fn
debugger
()
->
String
{
...
...
@@ -611,19 +602,6 @@ fn debugger() -> String {
}
check_debugger_output
(
&
debugger_run_result
,
check_lines
.as_slice
());
fn
dump_gdb_autoload_script
(
config
:
&
Config
,
testfile
:
&
Path
)
{
let
mut
script_path
=
output_base_name
(
config
,
testfile
);
let
mut
script_file_name
=
script_path
.filename
()
.unwrap
()
.to_vec
();
script_file_name
.push_all
(
"-gdb.py"
.as_bytes
());
script_path
.set_filename
(
script_file_name
.as_slice
());
let
script_content
=
"import gdb_rust_pretty_printing
\n
\
gdb_rust_pretty_printing.register_printers(gdb.current_objfile())
\n
"
.as_bytes
();
File
::
create
(
&
script_path
)
.write
(
script_content
)
.unwrap
();
}
}
fn
find_rust_src_root
(
config
:
&
Config
)
->
Option
<
Path
>
{
...
...
@@ -781,7 +759,6 @@ struct DebuggerCommands {
commands
:
Vec
<
String
>
,
check_lines
:
Vec
<
String
>
,
breakpoint_lines
:
Vec
<
uint
>
,
use_gdb_pretty_printer
:
bool
}
fn
parse_debugger_commands
(
file_path
:
&
Path
,
debugger_prefix
:
&
str
)
...
...
@@ -794,7 +771,6 @@ fn parse_debugger_commands(file_path: &Path, debugger_prefix: &str)
let
mut
breakpoint_lines
=
vec!
();
let
mut
commands
=
vec!
();
let
mut
check_lines
=
vec!
();
let
mut
use_gdb_pretty_printer
=
false
;
let
mut
counter
=
1
;
let
mut
reader
=
BufferedReader
::
new
(
File
::
open
(
file_path
)
.unwrap
());
for
line
in
reader
.lines
()
{
...
...
@@ -804,10 +780,6 @@ fn parse_debugger_commands(file_path: &Path, debugger_prefix: &str)
breakpoint_lines
.push
(
counter
);
}
if
line
.as_slice
()
.contains
(
"gdb-use-pretty-printer"
)
{
use_gdb_pretty_printer
=
true
;
}
header
::
parse_name_value_directive
(
line
.as_slice
(),
command_directive
.as_slice
())
.map
(|
cmd
|
{
...
...
@@ -832,7 +804,6 @@ fn parse_debugger_commands(file_path: &Path, debugger_prefix: &str)
commands
:
commands
,
check_lines
:
check_lines
,
breakpoint_lines
:
breakpoint_lines
,
use_gdb_pretty_printer
:
use_gdb_pretty_printer
,
}
}
...
...
src/etc/gdb_load_rust_pretty_printers.py
0 → 100644
浏览文件 @
91a0e188
# Copyright 2014 The Rust Project Developers. See the COPYRIGHT
# file at the top-level directory of this distribution and at
# http://rust-lang.org/COPYRIGHT.
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.
import
gdb_rust_pretty_printing
gdb_rust_pretty_printing
.
register_printers
(
gdb
.
current_objfile
())
src/etc/rust-gdb
0 → 100755
浏览文件 @
91a0e188
#!/bin/sh
# Copyright 2014 The Rust Project Developers. See the COPYRIGHT
# file at the top-level directory of this distribution and at
# http://rust-lang.org/COPYRIGHT.
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.
# Exit if anything fails
set
-e
# Find out where the pretty printer Python module is
RUSTC_SYSROOT
=
`
rustc
--print
=
sysroot
`
GDB_PYTHON_MODULE_DIRECTORY
=
"
$RUSTC_SYSROOT
/lib/rustlib/etc"
# Run GDB with the additional arguments that load the pretty printers
PYTHONPATH
=
"
$PYTHONPATH
:
$GDB_PYTHON_MODULE_DIRECTORY
"
gdb
\
-d
"
$GDB_PYTHON_MODULE_DIRECTORY
"
\
-iex
"add-auto-load-safe-path
$GDB_PYTHON_MODULE_DIRECTORY
"
\
"
$@
"
src/librustc/lint/builtin.rs
浏览文件 @
91a0e188
...
...
@@ -654,6 +654,7 @@ fn check_attribute(&mut self, cx: &Context, attr: &ast::Attribute) {
"static_assert"
,
"thread_local"
,
"no_debug"
,
"omit_gdb_pretty_printer_section"
,
"unsafe_no_drop_flag"
,
// used in resolve
...
...
src/librustc_llvm/lib.rs
浏览文件 @
91a0e188
...
...
@@ -1743,7 +1743,8 @@ pub fn LLVMDIBuilderCreateCompileUnit(Builder: DIBuilderRef,
isOptimized
:
bool
,
Flags
:
*
const
c_char
,
RuntimeVer
:
c_uint
,
SplitName
:
*
const
c_char
);
SplitName
:
*
const
c_char
)
->
DIDescriptor
;
pub
fn
LLVMDIBuilderCreateFile
(
Builder
:
DIBuilderRef
,
Filename
:
*
const
c_char
,
...
...
src/librustc_trans/trans/base.rs
浏览文件 @
91a0e188
...
...
@@ -2673,6 +2673,8 @@ fn create_entry_fn(ccx: &CrateContext,
unsafe
{
llvm
::
LLVMPositionBuilderAtEnd
(
bld
,
llbb
);
debuginfo
::
insert_reference_to_gdb_debug_scripts_section_global
(
ccx
);
let
(
start_fn
,
args
)
=
if
use_start_lang_item
{
let
start_def_id
=
match
ccx
.tcx
()
.lang_items
.require
(
StartFnLangItem
)
{
Ok
(
id
)
=>
id
,
...
...
src/librustc_trans/trans/debuginfo.rs
浏览文件 @
91a0e188
...
...
@@ -212,7 +212,7 @@
use
std
::
rc
::{
Rc
,
Weak
};
use
syntax
::
util
::
interner
::
Interner
;
use
syntax
::
codemap
::{
Span
,
Pos
};
use
syntax
::{
ast
,
codemap
,
ast_util
,
ast_map
};
use
syntax
::{
ast
,
codemap
,
ast_util
,
ast_map
,
attr
};
use
syntax
::
ast_util
::
PostExpansionMethod
;
use
syntax
::
parse
::
token
::{
mod
,
special_idents
};
...
...
@@ -740,7 +740,16 @@ pub fn finalize(cx: &CrateContext) {
}
debug!
(
"finalize"
);
compile_unit_metadata
(
cx
);
let
_
=
compile_unit_metadata
(
cx
);
if
needs_gdb_debug_scripts_section
(
cx
)
{
// Add a .debug_gdb_scripts section to this compile-unit. This will
// cause GDB to try and load the gdb_load_rust_pretty_printers.py file,
// which activates the Rust pretty printers for binary this section is
// contained in.
get_or_insert_gdb_debug_scripts_section_global
(
cx
);
}
unsafe
{
llvm
::
LLVMDIBuilderFinalize
(
DIB
(
cx
));
llvm
::
LLVMDIBuilderDispose
(
DIB
(
cx
));
...
...
@@ -1579,7 +1588,7 @@ fn create_DIArray(builder: DIBuilderRef, arr: &[DIDescriptor]) -> DIArray {
};
}
fn
compile_unit_metadata
(
cx
:
&
CrateContext
)
{
fn
compile_unit_metadata
(
cx
:
&
CrateContext
)
->
DIDescriptor
{
let
work_dir
=
&
cx
.sess
()
.working_dir
;
let
compile_unit_name
=
match
cx
.sess
()
.local_crate_source_file
{
None
=>
fallback_path
(
cx
),
...
...
@@ -1614,7 +1623,7 @@ fn compile_unit_metadata(cx: &CrateContext) {
(
option_env!
(
"CFG_VERSION"
))
.expect
(
"CFG_VERSION"
));
let
compile_unit_name
=
compile_unit_name
.as_ptr
();
work_dir
.as_vec
()
.with_c_str
(|
work_dir
|
{
return
work_dir
.as_vec
()
.with_c_str
(|
work_dir
|
{
producer
.with_c_str
(|
producer
|
{
""
.with_c_str
(|
flags
|
{
""
.with_c_str
(|
split_name
|
{
...
...
@@ -1628,7 +1637,7 @@ fn compile_unit_metadata(cx: &CrateContext) {
cx
.sess
()
.opts.optimize
!=
config
::
No
,
flags
,
0
,
split_name
)
;
split_name
)
}
})
})
...
...
@@ -4103,3 +4112,76 @@ fn namespace_for_item(cx: &CrateContext, def_id: ast::DefId) -> Rc<NamespaceTree
}
})
}
//=-----------------------------------------------------------------------------
// .debug_gdb_scripts binary section
//=-----------------------------------------------------------------------------
/// Inserts a side-effect free instruction sequence that makes sure that the
/// .debug_gdb_scripts global is referenced, so it isn't removed by the linker.
pub
fn
insert_reference_to_gdb_debug_scripts_section_global
(
ccx
:
&
CrateContext
)
{
if
needs_gdb_debug_scripts_section
(
ccx
)
{
let
empty
=
b
""
.to_c_str
();
let
gdb_debug_scripts_section_global
=
get_or_insert_gdb_debug_scripts_section_global
(
ccx
);
unsafe
{
let
volative_load_instruction
=
llvm
::
LLVMBuildLoad
(
ccx
.raw_builder
(),
gdb_debug_scripts_section_global
,
empty
.as_ptr
());
llvm
::
LLVMSetVolatile
(
volative_load_instruction
,
llvm
::
True
);
}
}
}
/// Allocates the global variable responsible for the .debug_gdb_scripts binary
/// section.
fn
get_or_insert_gdb_debug_scripts_section_global
(
ccx
:
&
CrateContext
)
->
llvm
::
ValueRef
{
let
section_var_name
=
b
"__rustc_debug_gdb_scripts_section__"
.to_c_str
();
let
section_var
=
unsafe
{
llvm
::
LLVMGetNamedGlobal
(
ccx
.llmod
(),
section_var_name
.as_ptr
())
};
if
section_var
==
ptr
::
null_mut
()
{
let
section_name
=
b
".debug_gdb_scripts"
.to_c_str
();
let
section_contents
=
b
"
\x01
gdb_load_rust_pretty_printers.py
\0
"
;
unsafe
{
let
llvm_type
=
Type
::
array
(
&
Type
::
i8
(
ccx
),
section_contents
.len
()
as
u64
);
let
section_var
=
llvm
::
LLVMAddGlobal
(
ccx
.llmod
(),
llvm_type
.to_ref
(),
section_var_name
.as_ptr
());
llvm
::
LLVMSetSection
(
section_var
,
section_name
.as_ptr
());
llvm
::
LLVMSetInitializer
(
section_var
,
C_bytes
(
ccx
,
section_contents
));
llvm
::
LLVMSetGlobalConstant
(
section_var
,
llvm
::
True
);
llvm
::
LLVMSetUnnamedAddr
(
section_var
,
llvm
::
True
);
llvm
::
SetLinkage
(
section_var
,
llvm
::
Linkage
::
LinkOnceODRLinkage
);
// This should make sure that the whole section is not larger than
// the string it contains. Otherwise we get a warning from GDB.
llvm
::
LLVMSetAlignment
(
section_var
,
1
);
section_var
}
}
else
{
section_var
}
}
fn
needs_gdb_debug_scripts_section
(
ccx
:
&
CrateContext
)
->
bool
{
let
omit_gdb_pretty_printer_section
=
attr
::
contains_name
(
ccx
.tcx
()
.map
.krate
()
.attrs
.as_slice
(),
"omit_gdb_pretty_printer_section"
);
!
omit_gdb_pretty_printer_section
&&
!
ccx
.sess
()
.target.target.options.is_like_osx
&&
!
ccx
.sess
()
.target.target.options.is_like_windows
&&
ccx
.sess
()
.opts.debuginfo
!=
NoDebugInfo
}
src/rustllvm/RustWrapper.cpp
浏览文件 @
91a0e188
...
...
@@ -257,7 +257,7 @@ extern "C" void LLVMDIBuilderFinalize(DIBuilderRef Builder) {
Builder
->
finalize
();
}
extern
"C"
void
LLVMDIBuilderCreateCompileUnit
(
extern
"C"
LLVMValueRef
LLVMDIBuilderCreateCompileUnit
(
DIBuilderRef
Builder
,
unsigned
Lang
,
const
char
*
File
,
...
...
@@ -267,8 +267,14 @@ extern "C" void LLVMDIBuilderCreateCompileUnit(
const
char
*
Flags
,
unsigned
RuntimeVer
,
const
char
*
SplitName
)
{
Builder
->
createCompileUnit
(
Lang
,
File
,
Dir
,
Producer
,
isOptimized
,
Flags
,
RuntimeVer
,
SplitName
);
return
wrap
(
Builder
->
createCompileUnit
(
Lang
,
File
,
Dir
,
Producer
,
isOptimized
,
Flags
,
RuntimeVer
,
SplitName
));
}
extern
"C"
LLVMValueRef
LLVMDIBuilderCreateFile
(
...
...
src/test/debuginfo/basic-types-globals-metadata.rs
浏览文件 @
91a0e188
...
...
@@ -45,6 +45,7 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![omit_gdb_pretty_printer_section]
static
B
:
bool
=
false
;
...
...
src/test/debuginfo/basic-types-globals.rs
浏览文件 @
91a0e188
...
...
@@ -50,6 +50,7 @@
// gdb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
static
B
:
bool
=
false
;
static
I
:
int
=
-
1
;
...
...
src/test/debuginfo/basic-types-metadata.rs
浏览文件 @
91a0e188
...
...
@@ -48,6 +48,7 @@
// gdb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
unit
:
()
=
();
...
...
src/test/debuginfo/basic-types-mut-globals.rs
浏览文件 @
91a0e188
...
...
@@ -83,6 +83,7 @@
// gdb-check:$28 = 9.25
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
static
mut
B
:
bool
=
false
;
static
mut
I
:
int
=
-
1
;
...
...
src/test/debuginfo/basic-types.rs
浏览文件 @
91a0e188
...
...
@@ -88,6 +88,7 @@
// lldb-check:[...]$12 = 3.5
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
b
:
bool
=
false
;
...
...
src/test/debuginfo/borrowed-basic.rs
浏览文件 @
91a0e188
...
...
@@ -109,6 +109,7 @@
// lldb-check:[...]$12 = 3.5
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
bool_val
:
bool
=
true
;
...
...
src/test/debuginfo/borrowed-c-style-enum.rs
浏览文件 @
91a0e188
...
...
@@ -41,6 +41,7 @@
// lldb-check:[...]$2 = TheC
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
enum
ABC
{
TheA
,
TheB
,
TheC
}
...
...
src/test/debuginfo/borrowed-enum.rs
浏览文件 @
91a0e188
...
...
@@ -40,6 +40,7 @@
// lldb-check:[...]$2 = TheOnlyCase(4820353753753434)
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
// The first element is to ensure proper alignment, irrespective of the machines word size. Since
// the size of the discriminant value is machine dependent, this has be taken into account when
...
...
src/test/debuginfo/borrowed-struct.rs
浏览文件 @
91a0e188
...
...
@@ -64,6 +64,7 @@
// lldb-check:[...]$6 = 26.5
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
SomeStruct
{
x
:
int
,
...
...
src/test/debuginfo/borrowed-tuple.rs
浏览文件 @
91a0e188
...
...
@@ -42,6 +42,7 @@
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
stack_val
:
(
i16
,
f32
)
=
(
-
14
,
-
19f32
);
...
...
src/test/debuginfo/borrowed-unique-basic.rs
浏览文件 @
91a0e188
...
...
@@ -112,7 +112,7 @@
// lldb-check:[...]$12 = 3.5
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
bool_box
:
Box
<
bool
>
=
box
true
;
...
...
src/test/debuginfo/box.rs
浏览文件 @
91a0e188
...
...
@@ -32,6 +32,7 @@
// lldb-check:[...]$1 = (2, 3.5)
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
a
=
box
1
i
;
...
...
src/test/debuginfo/boxed-struct.rs
浏览文件 @
91a0e188
...
...
@@ -35,6 +35,7 @@
// lldb-check:[...]$1 = StructWithDestructor { x: 77, y: 777, z: 7777, w: 77777 }
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
StructWithSomePadding
{
x
:
i16
,
...
...
src/test/debuginfo/by-value-non-immediate-argument.rs
浏览文件 @
91a0e188
...
...
@@ -71,6 +71,8 @@
// lldb-check:[...]$6 = Case1 { x: 0, y: 8970181431921507452 }
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
#[deriving(Clone)]
struct
Struct
{
a
:
int
,
...
...
src/test/debuginfo/by-value-self-argument-in-trait-impl.rs
浏览文件 @
91a0e188
...
...
@@ -46,6 +46,8 @@
// lldb-check:[...]$2 = (4444.5, 5555, 6666, 7777.5)
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
trait
Trait
{
fn
method
(
self
)
->
Self
;
}
...
...
src/test/debuginfo/c-style-enum-in-composite.rs
浏览文件 @
91a0e188
...
...
@@ -65,6 +65,7 @@
// lldb-check:[...]$6 = (StructWithDrop { a: OneHundred, b: Vienna }, 9)
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
AnEnum
::{
OneHundred
,
OneThousand
,
OneMillion
};
use
self
::
AnotherEnum
::{
MountainView
,
Toronto
,
Vienna
};
...
...
src/test/debuginfo/c-style-enum.rs
浏览文件 @
91a0e188
...
...
@@ -99,6 +99,7 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![omit_gdb_pretty_printer_section]
use
self
::
AutoDiscriminant
::{
One
,
Two
,
Three
};
use
self
::
ManualDiscriminant
::{
OneHundred
,
OneThousand
,
OneMillion
};
...
...
src/test/debuginfo/closure-in-generic-function.rs
浏览文件 @
91a0e188
...
...
@@ -46,6 +46,8 @@
// lldb-check:[...]$3 = 110
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
some_generic_fun
<
T1
,
T2
>
(
a
:
T1
,
b
:
T2
)
->
(
T2
,
T1
)
{
let
closure
=
|
x
,
y
|
{
...
...
src/test/debuginfo/destructured-fn-argument.rs
浏览文件 @
91a0e188
...
...
@@ -311,6 +311,7 @@
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
Univariant
::
Unit
;
...
...
src/test/debuginfo/destructured-for-loop-variable.rs
浏览文件 @
91a0e188
...
...
@@ -152,6 +152,9 @@
// lldb-check:[...]$23 = (34903493, 232323)
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
i16
,
y
:
f32
,
...
...
src/test/debuginfo/destructured-local.rs
浏览文件 @
91a0e188
...
...
@@ -244,6 +244,7 @@
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
Univariant
::
Unit
;
...
...
src/test/debuginfo/evec-in-struct.rs
浏览文件 @
91a0e188
...
...
@@ -51,6 +51,7 @@
// lldb-check:[...]$4 = StructPaddedAtEnd { x: [22, 23], y: [24, 25] }
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
NoPadding1
{
x
:
[
u32
;
3
],
...
...
src/test/debuginfo/function-arg-initialization.rs
浏览文件 @
91a0e188
...
...
@@ -222,10 +222,8 @@
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
immediate_args
(
a
:
int
,
b
:
bool
,
c
:
f64
)
{
::
std
::
io
::
print
(
""
)
// #break
...
...
src/test/debuginfo/function-arguments.rs
浏览文件 @
91a0e188
...
...
@@ -45,6 +45,9 @@
// lldb-check:[...]$3 = 3000
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
fun
(
111102
,
true
);
...
...
src/test/debuginfo/function-prologue-stepping-no-stack-check.rs
浏览文件 @
91a0e188
...
...
@@ -245,6 +245,7 @@
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
#[no_stack_check]
fn
immediate_args
(
a
:
int
,
b
:
bool
,
c
:
f64
)
{
...
...
src/test/debuginfo/function-prologue-stepping-regular.rs
浏览文件 @
91a0e188
...
...
@@ -126,6 +126,7 @@
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
immediate_args
(
a
:
int
,
b
:
bool
,
c
:
f64
)
{
()
...
...
src/test/debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs
浏览文件 @
91a0e188
...
...
@@ -17,7 +17,6 @@
// ignore-lldb
// ignore-android: FIXME(#10381)
// compile-flags:-g
// gdb-use-pretty-printer
// gdb-command: run
...
...
src/test/debuginfo/gdb-pretty-struct-and-enums.rs
浏览文件 @
91a0e188
...
...
@@ -13,7 +13,6 @@
// ignore-lldb
// ignore-android: FIXME(#10381)
// compile-flags:-g
// gdb-use-pretty-printer
// This test uses some GDB Python API features (e.g. accessing anonymous fields)
// which are only available in newer GDB version. The following directive will
...
...
src/test/debuginfo/generic-function.rs
浏览文件 @
91a0e188
...
...
@@ -70,6 +70,7 @@
// lldb-check:[...]$8 = ((5, Struct { a: 6, b: 7.5 }), (Struct { a: 6, b: 7.5 }, 5))
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
#[deriving(Clone)]
struct
Struct
{
...
...
src/test/debuginfo/generic-functions-nested.rs
浏览文件 @
91a0e188
...
...
@@ -70,6 +70,9 @@
// lldb-check:[...]$7 = 2.5
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
outer
<
TA
:
Clone
>
(
a
:
TA
)
{
inner
(
a
.clone
(),
1
i
);
inner
(
a
.clone
(),
2.5f64
);
...
...
src/test/debuginfo/generic-method-on-generic-struct.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,7 @@
// lldb-check:[...]$14 = -10.5
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
<
T
>
{
x
:
T
...
...
src/test/debuginfo/generic-static-method-on-struct-and-enum.rs
浏览文件 @
91a0e188
...
...
@@ -31,6 +31,9 @@
// gdb-check:$5 = 5
// gdb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
}
...
...
src/test/debuginfo/generic-struct-style-enum.rs
浏览文件 @
91a0e188
...
...
@@ -29,6 +29,9 @@
// gdb-command:print univariant
// gdb-check:$4 = {{a = -1}}
#![omit_gdb_pretty_printer_section]
use
self
::
Regular
::{
Case1
,
Case2
,
Case3
};
use
self
::
Univariant
::
TheOnlyCase
;
...
...
src/test/debuginfo/generic-struct.rs
浏览文件 @
91a0e188
...
...
@@ -41,6 +41,9 @@
// lldb-command:print float_int_float
// lldb-check:[...]$3 = AGenericStruct<f64, generic-struct::AGenericStruct<int, f64>> { key: 6.5, value: AGenericStruct<int, f64> { key: 7, value: 8.5 } }
#![omit_gdb_pretty_printer_section]
struct
AGenericStruct
<
TKey
,
TValue
>
{
key
:
TKey
,
value
:
TValue
...
...
src/test/debuginfo/generic-trait-generic-static-default-method.rs
浏览文件 @
91a0e188
...
...
@@ -25,6 +25,7 @@
// gdb-check:$4 = {3.5, {4, 5, 6}}
// gdb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
...
...
src/test/debuginfo/generic-tuple-style-enum.rs
浏览文件 @
91a0e188
...
...
@@ -48,6 +48,8 @@
// lldb-command:print univariant
// lldb-check:[...]$3 = TheOnlyCase(-1)
#![omit_gdb_pretty_printer_section]
use
self
::
Regular
::{
Case1
,
Case2
,
Case3
};
use
self
::
Univariant
::
TheOnlyCase
;
...
...
src/test/debuginfo/include_string.rs
浏览文件 @
91a0e188
...
...
@@ -36,6 +36,7 @@
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
// This test case makes sure that debug info does not ICE when include_str is
// used multiple times (see issue #11322).
...
...
src/test/debuginfo/issue12886.rs
浏览文件 @
91a0e188
...
...
@@ -16,9 +16,11 @@
// gdb-command:run
// gdb-command:next
// gdb-check:[...]3
2
[...]s
// gdb-check:[...]3
4
[...]s
// gdb-command:continue
#![omit_gdb_pretty_printer_section]
// IF YOU MODIFY THIS FILE, BE CAREFUL TO ADAPT THE LINE NUMBERS IN THE DEBUGGER COMMANDS
// This test makes sure that gdb does not set unwanted breakpoints in inlined functions. If a
...
...
src/test/debuginfo/lexical-scope-in-for-loop.rs
浏览文件 @
91a0e188
...
...
@@ -86,6 +86,8 @@
// lldb-check:[...]$6 = 1000000
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
range
=
[
1
i
,
2
,
3
];
...
...
src/test/debuginfo/lexical-scope-in-if.rs
浏览文件 @
91a0e188
...
...
@@ -134,6 +134,7 @@
// lldb-check:[...]$15 = -1
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
...
...
src/test/debuginfo/lexical-scope-in-match.rs
浏览文件 @
91a0e188
...
...
@@ -126,6 +126,7 @@
// lldb-check:[...]$17 = 232
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
,
...
...
src/test/debuginfo/lexical-scope-in-stack-closure.rs
浏览文件 @
91a0e188
...
...
@@ -70,6 +70,8 @@
// lldb-check:[...]$5 = false
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
x
=
false
;
...
...
src/test/debuginfo/lexical-scope-in-unconditional-loop.rs
浏览文件 @
91a0e188
...
...
@@ -132,6 +132,8 @@
// lldb-check:[...]$12 = 2
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
mut
x
=
0
i
;
...
...
src/test/debuginfo/lexical-scope-in-unique-closure.rs
浏览文件 @
91a0e188
...
...
@@ -70,6 +70,9 @@
// lldb-check:[...]$5 = false
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
x
=
false
;
...
...
src/test/debuginfo/lexical-scope-in-while.rs
浏览文件 @
91a0e188
...
...
@@ -132,6 +132,7 @@
// lldb-check:[...]$12 = 2
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
...
...
src/test/debuginfo/lexical-scope-with-macro.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,7 @@
#![feature(macro_rules)]
#![omit_gdb_pretty_printer_section]
macro_rules!
trivial
{
(
$e1:expr
)
=>
(
$e1
)
...
...
src/test/debuginfo/lexical-scopes-in-block-expression.rs
浏览文件 @
91a0e188
...
...
@@ -349,6 +349,7 @@
#![allow(unused_variables)]
#![allow(unused_assignments)]
#![omit_gdb_pretty_printer_section]
static
mut
MUT_INT
:
int
=
0
;
...
...
src/test/debuginfo/limited-debuginfo.rs
浏览文件 @
91a0e188
...
...
@@ -30,6 +30,7 @@
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
Struct
{
a
:
i64
,
...
...
src/test/debuginfo/method-on-enum.rs
浏览文件 @
91a0e188
...
...
@@ -113,6 +113,8 @@
// lldb-check:[...]$14 = -10
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
enum
Enum
{
Variant1
{
x
:
u16
,
y
:
u16
},
Variant2
(
u32
)
...
...
src/test/debuginfo/method-on-generic-struct.rs
浏览文件 @
91a0e188
...
...
@@ -113,6 +113,8 @@
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
<
T
>
{
x
:
T
}
...
...
src/test/debuginfo/method-on-struct.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,9 @@
// lldb-check:[...]$14 = -10
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
}
...
...
src/test/debuginfo/method-on-trait.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,9 @@
// lldb-check:[...]$14 = -10
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
}
...
...
src/test/debuginfo/method-on-tuple-struct.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,9 @@
// lldb-check:[...]$14 = -10
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
TupleStruct
(
int
,
f64
);
impl
TupleStruct
{
...
...
src/test/debuginfo/multiple-functions-equal-var-names.rs
浏览文件 @
91a0e188
...
...
@@ -45,6 +45,7 @@
// lldb-check:[...]$2 = 30303
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
function_one
()
{
let
abc
=
10101
i
;
...
...
src/test/debuginfo/multiple-functions.rs
浏览文件 @
91a0e188
...
...
@@ -45,6 +45,7 @@
// lldb-check:[...]$2 = 30303
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
function_one
()
{
let
a
=
10101
i
;
...
...
src/test/debuginfo/name-shadowing-and-scope-nesting.rs
浏览文件 @
91a0e188
...
...
@@ -94,6 +94,8 @@
// lldb-check:[...]$11 = 20
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
x
=
false
;
let
y
=
true
;
...
...
src/test/debuginfo/nil-enum.rs
浏览文件 @
91a0e188
...
...
@@ -23,6 +23,7 @@
// gdb-check:$2 = {<No data fields>}
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
enum
ANilEnum
{}
enum
AnotherNilEnum
{}
...
...
src/test/debuginfo/no-debug-attribute.rs
浏览文件 @
91a0e188
...
...
@@ -24,6 +24,7 @@
// gdb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
function_with_debuginfo
()
{
let
abc
=
10u
;
...
...
src/test/debuginfo/option-like-enum.rs
浏览文件 @
91a0e188
...
...
@@ -68,6 +68,8 @@
// lldb-check:[...]$7 = None
#![omit_gdb_pretty_printer_section]
// If a struct has exactly two variants, one of them is empty, and the other one
// contains a non-nullable pointer, then this value is used as the discriminator.
// The test cases in this file make sure that something readable is generated for
...
...
src/test/debuginfo/packed-struct-with-destructor.rs
浏览文件 @
91a0e188
...
...
@@ -74,6 +74,7 @@
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
#[repr(packed)]
struct
Packed
{
...
...
src/test/debuginfo/packed-struct.rs
浏览文件 @
91a0e188
...
...
@@ -60,6 +60,7 @@
// lldb-check:[...]$5 = 40
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
#[repr(packed)]
struct
Packed
{
...
...
src/test/debuginfo/recursive-enum.rs
浏览文件 @
91a0e188
...
...
@@ -18,6 +18,7 @@
// is taken from issue #11083.
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
pub
struct
Window
<
'a
>
{
callbacks
:
WindowCallbacks
<
'a
>
...
...
src/test/debuginfo/recursive-struct.rs
浏览文件 @
91a0e188
...
...
@@ -69,6 +69,7 @@
// gdb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
Opt
::{
Empty
,
Val
};
...
...
src/test/debuginfo/self-in-default-method.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,7 @@
// lldb-check:[...]$14 = -10
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
...
...
src/test/debuginfo/self-in-generic-default-method.rs
浏览文件 @
91a0e188
...
...
@@ -112,6 +112,7 @@
// lldb-check:[...]$14 = -10.5
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
...
...
src/test/debuginfo/shadowed-argument.rs
浏览文件 @
91a0e188
...
...
@@ -58,6 +58,9 @@
// lldb-check:[...]$5 = 20
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
a_function
(
x
:
bool
,
y
:
bool
)
{
zzz
();
// #break
sentinel
();
...
...
src/test/debuginfo/shadowed-variable.rs
浏览文件 @
91a0e188
...
...
@@ -58,6 +58,8 @@
// lldb-check:[...]$5 = 20
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
x
=
false
;
let
y
=
true
;
...
...
src/test/debuginfo/simd.rs
浏览文件 @
91a0e188
...
...
@@ -43,6 +43,7 @@
#![allow(experimental)]
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
std
::
simd
::{
i8x16
,
i16x8
,
i32x4
,
i64x2
,
u8x16
,
u16x8
,
u32x4
,
u64x2
,
f32x4
,
f64x2
};
...
...
src/test/debuginfo/simple-lexical-scope.rs
浏览文件 @
91a0e188
...
...
@@ -78,6 +78,9 @@
// lldb-check:[...]$6 = false
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
x
=
false
;
...
...
src/test/debuginfo/simple-struct.rs
浏览文件 @
91a0e188
...
...
@@ -95,8 +95,9 @@
// lldb-command:print padding_at_end
// lldb-check:[...]$5 = PaddingAtEnd { x: -10014, y: 10015 }
#![allow(unused_variables)]
;
#![allow(dead_code)]
;
#![allow(unused_variables)]
#![allow(dead_code)]
#![omit_gdb_pretty_printer_section]
struct
NoPadding16
{
x
:
u16
,
...
...
src/test/debuginfo/simple-tuple.rs
浏览文件 @
91a0e188
...
...
@@ -92,6 +92,7 @@
#![allow(unused_variables)]
#![allow(dead_code)]
#![omit_gdb_pretty_printer_section]
static
mut
NO_PADDING_8
:
(
i8
,
u8
)
=
(
-
50
,
50
);
static
mut
NO_PADDING_16
:
(
i16
,
i16
,
u16
)
=
(
-
1
,
2
,
3
);
...
...
src/test/debuginfo/static-method-on-struct-and-enum.rs
浏览文件 @
91a0e188
...
...
@@ -54,6 +54,8 @@
// lldb-check:[...]$4 = 5
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
}
...
...
src/test/debuginfo/struct-in-enum.rs
浏览文件 @
91a0e188
...
...
@@ -42,6 +42,7 @@
// lldb-check:[...]$2 = TheOnlyCase(Struct { x: 123, y: 456, z: 789 })
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
Regular
::{
Case1
,
Case2
};
use
self
::
Univariant
::
TheOnlyCase
;
...
...
src/test/debuginfo/struct-in-struct.rs
浏览文件 @
91a0e188
...
...
@@ -57,6 +57,7 @@
// lldb-check:[...]$7 = Tree { x: Simple { x: 25 }, y: InternalPaddingParent { x: InternalPadding { x: 26, y: 27 }, y: InternalPadding { x: 28, y: 29 }, z: InternalPadding { x: 30, y: 31 } }, z: BagInBag { x: Bag { x: Simple { x: 32 } } } }
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
Simple
{
x
:
i32
...
...
src/test/debuginfo/struct-style-enum.rs
浏览文件 @
91a0e188
...
...
@@ -49,6 +49,7 @@
// lldb-check:[...]$3 = TheOnlyCase { a: -1 }
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
Regular
::{
Case1
,
Case2
,
Case3
};
use
self
::
Univariant
::
TheOnlyCase
;
...
...
src/test/debuginfo/struct-with-destructor.rs
浏览文件 @
91a0e188
...
...
@@ -45,6 +45,7 @@
// lldb-check:[...]$3 = NestedOuter { a: NestedInner { a: WithDestructor { x: 7890, y: 9870 } } }
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
NoDestructor
{
x
:
i32
,
...
...
src/test/debuginfo/trait-generic-static-default-method.rs
浏览文件 @
91a0e188
...
...
@@ -45,6 +45,8 @@
// lldb-check:[...]$3 = (1, 2, 3)
// lldb-command:continue
#![omit_gdb_pretty_printer_section]
struct
Struct
{
x
:
int
}
...
...
src/test/debuginfo/trait-pointers.rs
浏览文件 @
91a0e188
...
...
@@ -16,6 +16,7 @@
// lldb-command:run
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
trait
Trait
{
fn
method
(
&
self
)
->
int
{
0
}
...
...
src/test/debuginfo/tuple-in-struct.rs
浏览文件 @
91a0e188
...
...
@@ -41,6 +41,7 @@
// gdb-check:$10 = {x = {{40, 41, 42}, {43, 44}}, y = {45, 46, 47, 48}}
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
NoPadding1
{
x
:
(
i32
,
i32
),
...
...
src/test/debuginfo/tuple-in-tuple.rs
浏览文件 @
91a0e188
...
...
@@ -57,6 +57,7 @@
// lldb-check:[...]$6 = ((21, 22), 23)
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
fn
main
()
{
let
no_padding1
:
((
u32
,
u32
),
u32
,
u32
)
=
((
0
,
1
),
2
,
3
);
...
...
src/test/debuginfo/tuple-struct.rs
浏览文件 @
91a0e188
...
...
@@ -62,6 +62,9 @@
// to all fields having the name "<unnamed_field>"). Otherwise they are handled the same a normal
// structs.
#![omit_gdb_pretty_printer_section]
struct
NoPadding16
(
u16
,
i16
);
struct
NoPadding32
(
i32
,
f32
,
u32
);
struct
NoPadding64
(
f64
,
i64
,
u64
);
...
...
src/test/debuginfo/tuple-style-enum.rs
浏览文件 @
91a0e188
...
...
@@ -49,6 +49,7 @@
// lldb-check:[...]$3 = TheOnlyCase(-1)
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
use
self
::
Regular
::{
Case1
,
Case2
,
Case3
};
use
self
::
Univariant
::
TheOnlyCase
;
...
...
src/test/debuginfo/type-names.rs
浏览文件 @
91a0e188
...
...
@@ -173,6 +173,8 @@
// gdb-command:whatis stack_closure2
// gdb-check:type = struct (&mut|i8, f32| -> f32, uint)
#![omit_gdb_pretty_printer_section]
use
self
::
Enum1
::{
Variant1_1
,
Variant1_2
};
use
std
::
ptr
;
...
...
src/test/debuginfo/unique-enum.rs
浏览文件 @
91a0e188
...
...
@@ -42,6 +42,7 @@
// lldb-check:[...]$2 = TheOnlyCase(123234)
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
// The first element is to ensure proper alignment, irrespective of the machines word size. Since
// the size of the discriminant value is machine dependent, this has be taken into account when
...
...
src/test/debuginfo/var-captured-in-nested-closure.rs
浏览文件 @
91a0e188
...
...
@@ -79,6 +79,7 @@
// lldb-command:continue
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
Struct
{
a
:
int
,
...
...
src/test/debuginfo/var-captured-in-sendable-closure.rs
浏览文件 @
91a0e188
...
...
@@ -42,6 +42,7 @@
#![allow(unused_variables)]
#![feature(unboxed_closures)]
#![omit_gdb_pretty_printer_section]
struct
Struct
{
a
:
int
,
...
...
src/test/debuginfo/var-captured-in-stack-closure.rs
浏览文件 @
91a0e188
...
...
@@ -72,6 +72,7 @@
#![feature(unboxed_closures)]
#![allow(unused_variables)]
#![omit_gdb_pretty_printer_section]
struct
Struct
{
a
:
int
,
...
...
src/test/debuginfo/vec-slices.rs
浏览文件 @
91a0e188
...
...
@@ -78,6 +78,7 @@
#![allow(unused_variables)]
#![feature(slicing_syntax)]
#![omit_gdb_pretty_printer_section]
struct
AStruct
{
x
:
i16
,
...
...
src/test/debuginfo/vec.rs
浏览文件 @
91a0e188
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录