Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
3155bfe7
D
dragonwell8_langtools
项目概览
openanolis
/
dragonwell8_langtools
通知
0
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_langtools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3155bfe7
编写于
2月 15, 2013
作者:
M
mcimadamore
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
8e6f7171
251082b9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
100 addition
and
8 deletion
+100
-8
src/share/classes/com/sun/tools/javap/ClassWriter.java
src/share/classes/com/sun/tools/javap/ClassWriter.java
+5
-5
src/share/classes/com/sun/tools/javap/JavapTask.java
src/share/classes/com/sun/tools/javap/JavapTask.java
+2
-1
src/share/classes/com/sun/tools/javap/Options.java
src/share/classes/com/sun/tools/javap/Options.java
+2
-2
test/tools/javap/DescriptorTest.java
test/tools/javap/DescriptorTest.java
+91
-0
未找到文件。
src/share/classes/com/sun/tools/javap/ClassWriter.java
浏览文件 @
3155bfe7
...
...
@@ -379,8 +379,8 @@ public class ClassWriter extends BasicWriter {
indent
(+
1
);
if
(
options
.
show
InternalSignature
s
)
println
(
"
Signature
: "
+
getValue
(
f
.
descriptor
));
if
(
options
.
show
Descriptor
s
)
println
(
"
descriptor
: "
+
getValue
(
f
.
descriptor
));
if
(
options
.
verbose
&&
!
options
.
compat
)
writeList
(
"flags: "
,
flags
.
getFieldFlags
(),
"\n"
);
...
...
@@ -475,8 +475,8 @@ public class ClassWriter extends BasicWriter {
indent
(+
1
);
if
(
options
.
show
InternalSignature
s
)
{
println
(
"
Signature
: "
+
getValue
(
m
.
descriptor
));
if
(
options
.
show
Descriptor
s
)
{
println
(
"
descriptor
: "
+
getValue
(
m
.
descriptor
));
}
if
(
options
.
verbose
&&
!
options
.
compat
)
{
...
...
@@ -520,7 +520,7 @@ public class ClassWriter extends BasicWriter {
setPendingNewline
(
options
.
showDisassembled
||
options
.
showAllAttrs
||
options
.
show
InternalSignature
s
||
options
.
show
Descriptor
s
||
options
.
showLineAndLocalVariableTables
||
options
.
verbose
);
}
...
...
src/share/classes/com/sun/tools/javap/JavapTask.java
浏览文件 @
3155bfe7
...
...
@@ -140,6 +140,7 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
new
Option
(
false
,
"-v"
,
"-verbose"
,
"-all"
)
{
void
process
(
JavapTask
task
,
String
opt
,
String
arg
)
{
task
.
options
.
verbose
=
true
;
task
.
options
.
showDescriptors
=
true
;
task
.
options
.
showFlags
=
true
;
task
.
options
.
showAllAttrs
=
true
;
}
...
...
@@ -190,7 +191,7 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
new
Option
(
false
,
"-s"
)
{
void
process
(
JavapTask
task
,
String
opt
,
String
arg
)
{
task
.
options
.
show
InternalSignature
s
=
true
;
task
.
options
.
show
Descriptor
s
=
true
;
}
},
...
...
src/share/classes/com/sun/tools/javap/Options.java
浏览文件 @
3155bfe7
/*
* Copyright (c) 2007, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 20
13
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -81,7 +81,7 @@ public class Options {
public
Set
<
String
>
accessOptions
=
new
HashSet
<
String
>();
public
Set
<
InstructionDetailWriter
.
Kind
>
details
=
EnumSet
.
noneOf
(
InstructionDetailWriter
.
Kind
.
class
);
public
boolean
showDisassembled
;
public
boolean
show
InternalSignature
s
;
public
boolean
show
Descriptor
s
;
public
boolean
showAllAttrs
;
public
boolean
showConstants
;
public
boolean
sysInfo
;
...
...
test/tools/javap/DescriptorTest.java
0 → 100644
浏览文件 @
3155bfe7
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 8007052
* @summary javap should include the descriptor for a method in verbose mode
*/
import
java.io.File
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
java.util.regex.Pattern
;
public
class
DescriptorTest
{
public
static
void
main
(
String
...
args
)
throws
Exception
{
new
DescriptorTest
().
run
();
}
void
run
()
throws
Exception
{
File
srcDir
=
new
File
(
"src"
);
srcDir
.
mkdirs
();
File
classesDir
=
new
File
(
"classes"
);
classesDir
.
mkdirs
();
File
f
=
writeFile
(
new
File
(
srcDir
,
"E.java"
),
"enum E { A, B }"
);
javac
(
"-d"
,
classesDir
.
getPath
(),
f
.
getPath
());
String
out
=
javap
(
"-p"
,
"-v"
,
new
File
(
classesDir
,
"E.class"
).
getPath
());
Pattern
expect
=
Pattern
.
compile
(
"\\Qprivate E();\\E\\s+\\Qdescriptor: (Ljava/lang/String;I)V\\E"
);
checkContains
(
out
,
expect
);
}
File
writeFile
(
File
f
,
String
body
)
throws
IOException
{
try
(
FileWriter
out
=
new
FileWriter
(
f
))
{
out
.
write
(
body
);
}
return
f
;
}
void
javac
(
String
...
args
)
throws
Exception
{
StringWriter
sw
=
new
StringWriter
();
PrintWriter
pw
=
new
PrintWriter
(
sw
);
int
rc
=
com
.
sun
.
tools
.
javac
.
Main
.
compile
(
args
,
pw
);
pw
.
flush
();
String
out
=
sw
.
toString
();
if
(!
out
.
isEmpty
())
System
.
err
.
println
(
out
);
if
(
rc
!=
0
)
throw
new
Exception
(
"compilation failed"
);
}
String
javap
(
String
...
args
)
throws
Exception
{
StringWriter
sw
=
new
StringWriter
();
PrintWriter
pw
=
new
PrintWriter
(
sw
);
int
rc
=
com
.
sun
.
tools
.
javap
.
Main
.
run
(
args
,
pw
);
pw
.
flush
();
String
out
=
sw
.
toString
();
if
(!
out
.
isEmpty
())
System
.
err
.
println
(
out
);
if
(
rc
!=
0
)
throw
new
Exception
(
"javap failed"
);
return
out
;
}
void
checkContains
(
String
s
,
Pattern
p
)
throws
Exception
{
if
(!
p
.
matcher
(
s
).
find
())
throw
new
Exception
(
"expected pattern not found: "
+
p
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录