203 if (datablock.Hash() != string.Empty) |
203 if (datablock.Hash() != string.Empty) |
204 { |
204 { |
205 aOutput.WriteAttributeString(XmlConsts.Kxml_defect_hash, datablock.Hash()); |
205 aOutput.WriteAttributeString(XmlConsts.Kxml_defect_hash, datablock.Hash()); |
206 } |
206 } |
207 |
207 |
|
208 if (datablock.DetailedHash() != string.Empty) |
|
209 { |
|
210 aOutput.WriteAttributeString(XmlConsts.Kxml_detailed_defect_hash, datablock.DetailedHash()); |
|
211 } |
|
212 |
|
213 if (datablock.TestSet() != string.Empty) |
|
214 { |
|
215 aOutput.WriteAttributeString(XmlConsts.Kxml_testset, datablock.TestSet()); |
|
216 } |
|
217 |
208 // Child elements for report details |
218 // Child elements for report details |
209 if (datablock.CodeSegs().Count > 0) |
219 if (datablock.CodeSegs().Count > 0) |
210 { |
220 { |
211 aOutput.WriteStartElement(XmlConsts.Kxml_loaded_dlls); |
221 aOutput.WriteStartElement(XmlConsts.Kxml_loaded_dlls); |
212 } |
222 } |
223 { |
233 { |
224 aOutput.WriteEndElement(); // loaded dlls |
234 aOutput.WriteEndElement(); // loaded dlls |
225 } |
235 } |
226 |
236 |
227 // Traces |
237 // Traces |
228 if(datablock.RegStorage().BasicRegs().Registers.Count > 0 || |
238 if( datablock.RegStorage().BasicRegs().Registers.Count > 0 || |
229 datablock.CallStacks().Count > 0 || |
239 datablock.CallStacks().Count > 0 || |
230 datablock.OstTraces().Count > 0 || |
240 datablock.OstTraces().Count > 0 || |
231 datablock.Eventlog().Count > 0 || |
241 datablock.Eventlog().Count > 0 || |
232 datablock.RegStorage().OtherRegLists().Count > 0) |
242 datablock.RegStorage().OtherRegLists().Count > 0 || |
|
243 datablock.PanicDescription() != String.Empty ) |
233 { |
244 { |
234 aOutput.WriteStartElement(XmlConsts.Kxml_traces); |
245 aOutput.WriteStartElement(XmlConsts.Kxml_traces); |
235 } |
246 } |
236 |
247 |
237 WriteDetail(aOutput, XmlConsts.Kxml_register, datablock.RegStorage().BasicRegs().ToString()); |
248 WriteDetail(aOutput, XmlConsts.Kxml_register, datablock.RegStorage().BasicRegs().ToPrettyString()); |
238 |
249 |
239 // Extra registers |
250 // Extra registers |
240 System.Text.StringBuilder extraRegisters = new System.Text.StringBuilder(); |
251 System.Text.StringBuilder extraRegisters = new System.Text.StringBuilder(); |
241 foreach (CXmlRegisterStorage.CCrashInfoRegisterList registerList in datablock.RegStorage().OtherRegLists()) |
252 foreach (CXmlRegisterStorage.CCrashInfoRegisterList registerList in datablock.RegStorage().OtherRegLists()) |
242 { |
253 { |
263 foreach (string line in datablock.Eventlog()) |
274 foreach (string line in datablock.Eventlog()) |
264 { |
275 { |
265 eventLog.AppendLine(line); |
276 eventLog.AppendLine(line); |
266 } |
277 } |
267 WriteDetail(aOutput, XmlConsts.Kxml_eventlog, eventLog.ToString()); |
278 WriteDetail(aOutput, XmlConsts.Kxml_eventlog, eventLog.ToString()); |
|
279 |
|
280 // Panic description |
|
281 WriteDetail(aOutput, XmlConsts.Kxml_panic_description, datablock.PanicDescription()); |
268 |
282 |
269 if (datablock.RegStorage().BasicRegs().Registers.Count > 0 || |
283 if (datablock.RegStorage().BasicRegs().Registers.Count > 0 || |
270 datablock.CallStacks().Count > 0 || |
284 datablock.CallStacks().Count > 0 || |
271 datablock.OstTraces().Count > 0 || |
285 datablock.OstTraces().Count > 0 || |
272 datablock.Eventlog().Count > 0 || |
286 datablock.Eventlog().Count > 0 || |
273 datablock.RegStorage().OtherRegLists().Count > 0) |
287 datablock.RegStorage().OtherRegLists().Count > 0 || |
|
288 datablock.PanicDescription() != String.Empty) |
274 { |
289 { |
275 aOutput.WriteEndElement(); // traces |
290 aOutput.WriteEndElement(); // traces |
276 } |
291 } |
277 WriteDictionaryValues(aOutput, datablock); |
292 WriteDictionaryValues(aOutput, datablock); |
278 WriteUniqueValues(aOutput, datablock); |
293 WriteUniqueValues(aOutput, datablock); |
286 // Dictionary values |
301 // Dictionary values |
287 aOutput.WriteStartElement(XmlConsts.Kxml_dictionary_values); |
302 aOutput.WriteStartElement(XmlConsts.Kxml_dictionary_values); |
288 |
303 |
289 WriteDetail(aOutput, XmlConsts.Kxml_panic_id, datablock.PanicId()); |
304 WriteDetail(aOutput, XmlConsts.Kxml_panic_id, datablock.PanicId()); |
290 WriteDetail(aOutput, XmlConsts.Kxml_panic_category, datablock.PanicCategory()); |
305 WriteDetail(aOutput, XmlConsts.Kxml_panic_category, datablock.PanicCategory()); |
291 WriteDetail(aOutput, XmlConsts.Kxml_panic_description, datablock.PanicDescription()); |
|
292 WriteDetail(aOutput, XmlConsts.Kxml_language, datablock.Language()); |
306 WriteDetail(aOutput, XmlConsts.Kxml_language, datablock.Language()); |
293 |
307 |
294 if (!datablock.Process().Equals(XmlConsts.Kxml_unknown_process)) |
308 if (!datablock.Process().Equals(XmlConsts.Kxml_unknown_process)) |
295 { |
309 { |
296 WriteDetail(aOutput, XmlConsts.Kxml_panicked_process, datablock.Process()); |
310 WriteDetail(aOutput, XmlConsts.Kxml_panicked_process, datablock.Process()); |
377 WriteDetail(aOutput, XmlConsts.Kxml_siminfo, datablock.Imsi()); |
391 WriteDetail(aOutput, XmlConsts.Kxml_siminfo, datablock.Imsi()); |
378 WriteDetail(aOutput, XmlConsts.Kxml_locinfo, datablock.LocInfo()); |
392 WriteDetail(aOutput, XmlConsts.Kxml_locinfo, datablock.LocInfo()); |
379 WriteDetail(aOutput, XmlConsts.Kxml_cellid, datablock.NetworkCell()); |
393 WriteDetail(aOutput, XmlConsts.Kxml_cellid, datablock.NetworkCell()); |
380 WriteDetail(aOutput, XmlConsts.Kxml_psninfo, datablock.SerialNumber()); |
394 WriteDetail(aOutput, XmlConsts.Kxml_psninfo, datablock.SerialNumber()); |
381 WriteDetail(aOutput, XmlConsts.Kxml_uid, datablock.UID()); |
395 WriteDetail(aOutput, XmlConsts.Kxml_uid, datablock.UID()); |
382 WriteDetail(aOutput, XmlConsts.Kxml_testset, datablock.TestSet()); |
|
383 WriteDetail(aOutput, XmlConsts.Kxml_diskinfo, datablock.DiskInfo()); |
396 WriteDetail(aOutput, XmlConsts.Kxml_diskinfo, datablock.DiskInfo()); |
384 WriteDetail(aOutput, XmlConsts.Kxml_phone_number, datablock.PhoneNumber()); |
397 WriteDetail(aOutput, XmlConsts.Kxml_phone_number, datablock.PhoneNumber()); |
385 |
398 |
386 WriteDetail(aOutput, XmlConsts.Kxml_report_ok, datablock.ReportOK()); |
399 WriteDetail(aOutput, XmlConsts.Kxml_report_ok, datablock.ReportOK()); |
387 WriteDetail(aOutput, XmlConsts.Kxml_report_fail, datablock.ReportFail()); |
400 WriteDetail(aOutput, XmlConsts.Kxml_report_fail, datablock.ReportFail()); |