private void Temporizador_Principal_Tick(object sender, EventArgs e) { try { int Tick = Environment.TickCount; try { if (Variable_Excepción) { if ((Environment.TickCount / 500) % 2 == 0) { if (!Variable_Excepción_Imagen) { Variable_Excepción_Imagen = true; Barra_Estado_Botón_Excepción.Image = Resources.Excepción; Barra_Estado_Botón_Excepción.ForeColor = Color.Red; Barra_Estado_Botón_Excepción.Text = "Exceptions: " + Program.Traducir_Número(Variable_Excepción_Total); } } else { if (Variable_Excepción_Imagen) { Variable_Excepción_Imagen = false; Barra_Estado_Botón_Excepción.Image = Resources.Excepción_Gris; Barra_Estado_Botón_Excepción.ForeColor = Color.Black; Barra_Estado_Botón_Excepción.Text = "Exceptions: " + Program.Traducir_Número(Variable_Excepción_Total); } } if (!Barra_Estado_Botón_Excepción.Visible) { Barra_Estado_Botón_Excepción.Visible = true; } if (!Barra_Estado_Separador_1.Visible) { Barra_Estado_Separador_1.Visible = true; } } } catch (Exception Excepción) { Depurador.Escribir_Excepción(Excepción != null ? Excepción.ToString() : null); Variable_Excepción_Total++; Variable_Excepción = true; } try { try { if (Tick % 250 == 0) // Only update every quarter second { if (Program.Rendimiento_Procesador != null) { double CPU = (double)Program.Rendimiento_Procesador.NextValue(); if (CPU < 0d) { CPU = 0d; } else if (CPU > 100d) { CPU = 100d; } Barra_Estado_Etiqueta_CPU.Text = "CPU: " + Program.Traducir_Número_Decimales_Redondear(CPU, 2) + " %"; } Program.Proceso.Refresh(); long Memoria_Bytes = Program.Proceso.PagedMemorySize64; Barra_Estado_Etiqueta_Memoria.Text = "RAM: " + Program.Traducir_Tamaño_Bytes_Automático(Memoria_Bytes, 2, true); if (Memoria_Bytes < 4294967296L) // < 4 GB { if (Variable_Memoria) { Variable_Memoria = false; Barra_Estado_Etiqueta_Memoria.ForeColor = Color.Black; } } else // >= 4 GB { if ((Environment.TickCount / 500) % 2 == 0) { if (!Variable_Memoria) { Variable_Memoria = true; Barra_Estado_Etiqueta_Memoria.ForeColor = Color.Red; } } else { if (Variable_Memoria) { Variable_Memoria = false; Barra_Estado_Etiqueta_Memoria.ForeColor = Color.Black; } } } } } catch { Barra_Estado_Etiqueta_Memoria.Text = "RAM: ? MB (? GB)"; } } catch (Exception Excepción) { Depurador.Escribir_Excepción(Excepción != null ? Excepción.ToString() : null); Variable_Excepción_Total++; Variable_Excepción = true; } long FPS_Milisegundo = FPS_Cronómetro.ElapsedMilliseconds; long FPS_Segundo = FPS_Milisegundo / 1000L; if (FPS_Segundo != FPS_Segundo_Anterior) { FPS_Segundo_Anterior = FPS_Segundo; FPS_Real = FPS_Temporal; Barra_Estado_Etiqueta_FPS.Text = FPS_Real.ToString() + " FPS"; FPS_Temporal = 0L; } FPS_Temporal++; } catch (Exception Excepción) { Depurador.Escribir_Excepción(Excepción != null ? Excepción.ToString() : null); Variable_Excepción_Total++; Variable_Excepción = true; } }
internal void Cargar_Errores() { try { if (!Ocupado) { long Depurador_Errores = 0L, Depurador_Errores_Únicos = 0L; string Texto = null; Lector_Depurador = new FileStream(Application.StartupPath + "\\Debugger", FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite); Lector_Depurador.Seek(0L, SeekOrigin.Begin); Lector_Depurador_Binario = new BinaryReader(Lector_Depurador, Encoding.ASCII); if (Lector_Depurador != null && Lector_Depurador_Binario != null && Lector_Depurador.Length > 0L) { List <Excepciones> Lista_Excepciones = new List <Excepciones>(); for (long Índice = 0L; Índice < Lector_Depurador.Length;) { uint CRC32 = 0; DateTime Primera_Fecha = DateTime.MinValue; DateTime Última_Fecha = DateTime.MinValue; long Repeticiones = 0L; int Longitud = 0; string Mensaje = null; try { CRC32 = Lector_Depurador_Binario.ReadUInt32(); } catch { CRC32 = 0; } try { Primera_Fecha = DateTime.FromBinary(Lector_Depurador_Binario.ReadInt64()); } catch { Primera_Fecha = DateTime.MinValue; } try { Última_Fecha = DateTime.FromBinary(Lector_Depurador_Binario.ReadInt64()); } catch { Última_Fecha = DateTime.MinValue; } try { Repeticiones = Lector_Depurador_Binario.ReadInt64(); } catch { Repeticiones = 0L; } try { Longitud = Lector_Depurador_Binario.ReadInt32(); } catch { Longitud = 0; } try { Mensaje = Encoding.Unicode.GetString(Lector_Depurador_Binario.ReadBytes(Longitud)); } catch { Mensaje = "Unknown error."; } Depurador_Errores += Repeticiones; Depurador_Errores_Únicos++; Lista_Excepciones.Add(new Excepciones(CRC32, Primera_Fecha, Última_Fecha, Repeticiones, Longitud, Mensaje)); Índice += 32 + Longitud; } if (Lista_Excepciones.Count > 0) { Lista_Excepciones.Sort(new Comparador_Excepciones()); if (Invertir_Orden) { Lista_Excepciones.Reverse(); } for (int Índice = 0; Índice < Lista_Excepciones.Count; Índice++) { Texto += "[" + (Índice + 1).ToString() + "] [x" + Program.Traducir_Número(Lista_Excepciones[Índice].Repeticiones) + /*"] [CRC-32: " + Program.Traducir_Número(Lista_Excepciones[Índice].CRC32) + */ "] [" + Program.Traducir_Fecha_Hora(Lista_Excepciones[Índice].Primera_Fecha) + "] [" + Program.Traducir_Fecha_Hora(Lista_Excepciones[Índice].Última_Fecha) + "] " + Lista_Excepciones[Índice].Mensaje + "\r\n\r\n"; } } } this.Text = "Exception Debugger by Jupisoft - [Errors: " + Program.Traducir_Número(Depurador_Errores) + ", Unique Errors: " + Program.Traducir_Número(Depurador_Errores_Únicos) + "]"; if (!string.IsNullOrEmpty(Texto)) { Texto = "[Dear " + Program.Texto_Usuario + " if you want to help with the debugging of these exceptions, please send the \"Debugger\" file to: [email protected]]\r\n\r\n" + Texto.TrimEnd("\r\n\r\n".ToCharArray()); } Editor_RTF.Text = Texto; } } catch (Exception Excepción) { Depurador.Escribir_Excepción(Excepción != null ? Excepción.ToString() : null); } }