blob: e89fbbe8d6b556f7aaa1f7e71a30a89fb39b0d31 [file] [log] [blame]
Dan Morrill3cd199f2009-11-06 14:04:16 -08001page.title=Report Bugs
2doc.type=source
3@jd:body
4<div>
5<p>Thanks for your interest in Android! One of the best ways you can help us
6improve Android is to let us know about any problems you find with it.</p>
7<p>First, though: if you think you've found a security vulnerability,
8<b>please don't use the forms below</b>. (Using the public forms below may
9allow anyone to see your report, which may put users at risk until the bug is
10fixed.) Instead, please report security bugs to our security team by emailing
11<a href="mailto:security@android.com">security@android.com</a>. We believe in
12responsible disclosure of security vulnerabilities, and will give you proper
13attribution for any issues you report.</p>
14<p>Here's how to report non-security bugs:</p>
15<ol>
16 <li><a href="http://code.google.com/p/android/issues/advsearch">Search for
17 your bug</a> to see if anyone has already reported it.</li>
18 <li>If you find your issue and it's important to you, star it! That's how we
19 know which bugs are most important to fix.</li>
20 <li>If no one's reported your bug, file the bug. You can use one of these
21 templates:<ul>
22 <li><a
23 href="http://code.google.com/p/android/issues/entry?template=User%20bug%20report">Bugs
24 in your Device (for users)</a></li>
25 <li><a
26 href="http://code.google.com/p/android/issues/entry?template=Developer%20bug%20report">Bugs
27 in the Software (for developers)</a></li>
28 <li><a
29 href="http://code.google.com/p/android/issues/entry?template=Feature%20request">Request
30 a New Feature</a></li>
31 </ul></li>
32</ol>
33<p>Please note that we can't guarantee that any particular bug can be fixed in
34any particular release. To see what happens to your bug once you report it,
35read <a href="{@docRoot}source/life-of-a-bug.html">Life of a Bug</a>.</p>
36<p>In general, please put as much info in bugs as you can. Just a one liner
37telling us something isn't working is usually useless, and will probably be
38closed without any action. The more detail you provide, the more likely your
39issue is to be resolved. Below, there are some examples of a good bug report
40and a poor bug report.</p>
41<h3>A Poor Bug Report</h3>
42<pre>
43Title: Error message
44
45When running Eclipse I get an "Internal Error" that says "See the .log file
46for more details".
47
48Steps to reproduce:
49Happens when "Object o = null". Doesn't happen when changed to "Object o".
50
51Expected results:
52I wouldn't get the error message--would work with Object o = null.
53
54Observed results:
55See above.
56</pre>
57<h3>A Good Bug Report</h3>
58<pre>
59Title: Stepping over "Object o = null" causes Eclipse "Internal Error"
60
61Interesting bug, while using Eclipse 3.3.1.1 with m37a of android and
62the following code:
63
64package com.saville.android;
65
66import android.app.Activity;
67import android.os.Bundle;
68import android.util.Log;
69
70public class TestObjectNull extends Activity {
71 /** Called when the activity is first created. */
72 @Override
73 public void onCreate(Bundle icicle) {
74 super.onCreate(icicle);
75 setContentView(R.layout.main);
76
77 Object o = null;
78
79 o = "hi";
80
81 Log.v(TAG, "o=" + o);
82 }
83
84 static final String TAG = "TestObjectNull";
85
86}
87
88Eclipse indicates an "Internal Error" with "See the .log file for more
89details" and then asks if I want to exit the workbench. This occurs when I
90place a break point on "setContentView(R.layout.main);" and then single
91step over "Object o = null;"
92
93If I change "Object o = null;" to "Object o" all is well.
94
95The last lines of the .log file are:
96
97!ENTRY org.eclipse.core.jobs 4 2 2008-01-01 13:04:15.825
98!MESSAGE An internal error occurred during: "has children update".
99!STACK 0
100java.lang.InternalError: Invalid signature: "&lt;null&gt;"
101 at
102org.eclipse.jdi.internal.TypeImpl.signatureToTag(TypeImpl.java:307)
103 at
104org.eclipse.jdi.internal.LocalVariableImpl.tag(LocalVariableImpl.java:185)
105 at
106org.eclipse.jdi.internal.StackFrameImpl.getValues(StackFrameImpl.java:128)
107 at
108org.eclipse.jdi.internal.StackFrameImpl.getValue(StackFrameImpl.java:73)
109 at
110org.eclipse.jdt.internal.debug.core.model.JDILocalVariable.retrieveValue(JDILocalVariable.java:57)
111 at
112org.eclipse.jdt.internal.debug.core.model.JDIVariable.getCurrentValue(JDIVariable.java:66)
113 at
114org.eclipse.jdt.internal.debug.core.model.JDIVariable.getValue(JDIVariable.java:88)
115 at
116org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.hasChildren(VariableContentProvider.java:62)
117 at
118org.eclipse.jdt.internal.debug.ui.variables.JavaVariableContentProvider.hasChildren(JavaVariableContentProvider.java:73)
119 at
120org.eclipse.debug.internal.ui.model.elements.ElementContentProvider.updateHasChildren(ElementContentProvider.java:223)
121 at
122org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$3.run(ElementContentProvider.java:200)
123 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
124</pre>
125</div>