Was soll diese Fehlermeldung aussagen?

Registriert
16 Apr. 2016
Beiträge
83
Tach

Der den ich basteln möchte macht noch einige Propleme. Ständig kommt eine WindowsAusnahmeFehlermeldung aus der ich ja nicht klug werde. Um den Fehler zu finden wäre es gut die zu verstehen, hoffe ich zumindest.

Das externe Gerät und das Programm dafür sollten eigentlich funktionieren. So gebe ich mal Windows die Schuld.
Vielleicht hat aber auch mein defektes Mobo was damit zu tun. Dieses konnte in jungen Jahren mal USB3. Jetzt zwickts hinten und vorn. Vorne schlägt der PC/Windows manchmal, bei anderen Geräten wie Mp3-Player, vor diese an Anschlüsse mit USB2 zustecken. Aber sonst funzen ja alle USBGerät auch. Nur halt nicht mehr so schnell.
Auf nem älteren VergleichsWindows7-PC läuft das Programm erst gar nicht an. Aber ohne Fehlermeldung.

Aber meine Vermutungen bringen ja nüscht. Es braucht einen Weisen der mir die Fehlermeldung entschlüsselt. Vielleicth hilft das was.
Was bring dieser am Schluss erwähnte JitDebugger?
In der Systemsteuerung unter Internetoptionen habe ich mal die 'Andere' und InternetExplorer Scriptdebugging abgeklickt und es hat sich nix verbessert.
Weil so oft 'Win32' vorkommt: ich habe Win/ 64.


Fehlermeldung
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
************** Ausnahmetext **************
System.OverflowException: Der Wert für einen Int32 war zu groß oder zu klein.
bei System.Convert.ToInt32(Double value)
bei Vibration_Meter.Main_Form.globalForce(Object s, EventArgs e)
bei System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
bei System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
bei System.Windows.Forms.Control.InvokeMarshaledCallbacks()


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
DPBalancer
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///D:/copter/dp1.3/DPBalancer.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34251 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34270 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34238 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
NationalInstruments.UI.WindowsForms
Assembly-Version: 13.0.45.242.
Win32-Version: 13.0.45.242.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/NationalInstruments.UI.WindowsForms/v4.0_13.0.45.242__4febd62461bf11a4/NationalInstruments.UI.WindowsForms.dll.
----------------------------------------
NationalInstruments.UI
Assembly-Version: 13.0.45.242.
Win32-Version: 13.0.45.242.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/NationalInstruments.UI/v4.0_13.0.45.242__4febd62461bf11a4/NationalInstruments.UI.dll.
----------------------------------------
System.Windows.Forms.DataVisualization
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.DataVisualization/v4.0_4.0.0.0__31bf3856ad364e35/System.Windows.Forms.DataVisualization.dll.
----------------------------------------
C1.Win.C1Gauge.4
Assembly-Version: 4.0.20143.9.
Win32-Version: 4.0.20143.9.
CodeBase: file:///D:/copter/dp1.3/C1.Win.C1Gauge.4.DLL.
----------------------------------------
NationalInstruments.Common
Assembly-Version: 13.0.40.188.
Win32-Version: 13.0.40.188.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/NationalInstruments.Common/v4.0_13.0.40.188__dc6ad606294fc298/NationalInstruments.Common.dll.
----------------------------------------
NationalInstruments.Common.Native
Assembly-Version: 13.0.40.188.
Win32-Version: 13.0.40.188.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/NationalInstruments.Common.Native/v4.0_13.0.40.188__dc6ad606294fc298/NationalInstruments.Common.Native.dll.
----------------------------------------
System.Windows.Forms.DataVisualization.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.DataVisualization.resources/v4.0_4.0.0.0_de_31bf3856ad364e35/System.Windows.Forms.DataVisualization.resources.dll.
----------------------------------------
System.Configuration
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34234 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.Web
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34280 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll.
----------------------------------------
System.Core
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Design
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Design/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Design.dll.
----------------------------------------
Accessibility
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
----------------------------------------
System.Data
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle Ausnahmefehler an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
 
"System.OverflowException: Der Wert für einen Int32 war zu groß oder zu klein."
Führst du irgendwie x64-Code in einer x86-Runtime aus? 2.147.483.647 ist laut google der größtmögliche Wert für ein Int32 in C#. Anscheinend wird da ein Double mit einem höheren Wert versucht in ein Int32 zu quetschen. "Main_Form.globalForce()" scheint die Funktion zu sein, in der der unerwartet hohe Wert auftaucht. Da wird irgendwo ToInt32() ein Double gegeben, von dem der Entwickler der App nicht erwartet hat, dass jemals einen so hohen (oder niedrigen) Wert wie Anfangs erwähnt erreicht.

Ein Just-In-Time-Debugger gibt während des Laufens eines Programmes hilfreiche Informationen aus. Der könnte dir vermutlich genauer sagen, an welcher Stelle und mit welchen Werten der Fehler auftritt. Inwiefern bist du mit der Materie vertraut? Das schaut nach einem ziemich ambitionierten Projekt mit vielen Sensoren und nach C# aus.
 
  • Thread Starter Thread Starter
  • #3
Code x64 Runtime Douple???? Das sagt mir nix. 'hat bestimmt was mit 32/64 Programmen zu tun.

Mit Programieren kenne ich mich gar nicht aus. Ausser Arduinos oder Gimbalboards vorgefertigte Sketche/Firmenwaren draufzuladen. ( Das war meist ganz schön quälend. Die kleine Freude wenns dann funktioniert steht in keinem Verhältniss dazu. Zumals dann neue Propleme gibt.) Das hier ist ziemlich das gleiche, ausser dass hier noch Sensoren, Lichtschranke und Beschleunigungssensor, dran sind. Aber das ist ja alles im Programm/FW festgelegt, draufgeladen und müsste funktionieren. Programmieren muss man auch nicht.

Ich löte halt nach Plan zusammen. Notfalls doppelt und dreifach und finde Stück für Stück die Fehler. Jetzt kann ich ausschliessen dass es am Aufbau liegt.
Das Programm DPBalancer funktioniert ja manchmal. -Vorhin ne zeitlang ganz vorbildlich. Meist schliesst es sich nach der Meldung früher oder später.

Das Ganze scheint auch jetzt mit dem adxl345 etwas besser stabiler zu laufen als mit dem keyes 345. Ob mir das nur so scheint, -da das der gleiche Sensor in anderer Bauform ist, mag ich gar nicht herrausfinden. Das machts nur noch komplizierter. Der Fehler tritt noch auf also ists unwichtig.
 
Das ist eigentlich der falsche Bereich - das gehört in Programmierung.
Falls ses sich beim DPBalancer nicht um eine Opensource Software handelt - kannst du selbst mit den Jit-Debugger maximal sehen woran es hängt - aber nichts daran ändern.
Folglich solltest du den Fehler dann dem Entwickler melden.
 
  • Thread Starter Thread Starter
  • #5
So, nun habe ich mich mit diesem JIT Debugger auseinander gesetzt. dh. Ich hab warumauchimmer im Inetexplorer/Extras/erweitert den Debugger aktiviert.
Und laut dem letzten Sätzen im der Fehlermeldung oben muss man etwas "kompilieren". Auch scheint da ein Beispiel angegeben zu sein.
Tja, ich fürchte nur das verstehe ich immer noch nicht.
Soweit ich das verstehe müsste ich die drei Zeilen in eine Machine.config eingeben. Oder die Infos werden irgendwo hin gesendet/gespeichert. Nur finde ich diese nicht.


Zu sehen woran es hängt wäre ja schon mal ein kleiner wichtiger Schritt.
 
Ich versuch mal, das relativ einfach zu erklären.

Erstmal: Das Programm liegt nicht fertig kompiliert vor. Du musst dir vorstellen, dass der Code nicht direkt ausgeführt werden kann. Stattdessen liest ein Programm den Code ein, übersetzt ihn während das Programm läuft (bevor die entsprechende Codestelle aufgerufen wird), und dieser Code wird dann erst ausgeführt. Dieser Prozess heißt JIT-Kompilierung (Just in Time, also "gerade so rechtzeitig"). Um das jetzt zu debuggen, also Fehler zu finden, kann man einen JIT-Debugger verwenden. Das wird dir aber nicht viel bringen, wenn du nicht recht firm im Thema Programmierung bist.

Der Fehler, der auftritt, ist auch recht einfach zu erklären. Der Programmierer der Anwendung hat einen Fehler gemacht - es gibt verschiedene Datentypen, welche unterschiedliche Mengen an Daten halten können. Das macht man, damit nur so viel Platz im Arbeitsspeicher gebraucht wird, wie tatsächlich benötigt wird. Der Entwickler des Programmes versucht jetzt, eine double-Zahl in eine Int32 umzuwandeln. Eine Variable vom Typ double kann 64 Bit an Informationen halten und wird für Fließkommazahlen genutzt. Damit ist ein ungefährer Bereich von [FONT=&quot]±5.0 × 10[/FONT][FONT=&quot]−324[/FONT][FONT=&quot] bis ±1.7 × 10[/FONT][FONT=&quot]308[/FONT] abgedeckt. Int32 dagegen kann nur 32 Bit an Informationen halten und wird für Ganzzahlen verwendet. Damit ist ein Bereich von -2.147.483.648 bis 2.147.483.647 abgedeckt - wie du siehst also viel, viel weniger.

Der Programmierer der Anwendung versucht jetzt, eine double zu einer Int32 umzuwandeln, überprüft aber nicht ob die Zahl nicht zu groß ist. Deshalb crasht das Programm, weil die C#-Runtime - also das Programm, welches den Code ausführbar macht - nicht weiß, wie es mit der double umgehen sollen, weil die logischerweise nicht in die Int32 passt.

Du hast jetzt effektiv 2 Möglichkeiten - entweder muss der Entwickler das Problem beheben, oder jemand muss die Anwendung dekompilieren und den Fehler beheben. Das ist leider ein sehr aufwändiger Prozess, der auch einiges an Erfahrung benötigt. Der Thread-Ersteller hat aber gestern noch in dem Topic gepostet, du solltest also Erfolg haben, wenn du ihn einfach fragst. Schick ihm im Idealfall deinen Log, dann sollte er das Problem recht einfach beheben können.
 
  • Thread Starter Thread Starter
  • #7
Oh. Na dann. Danke.

wobei ich diese Fehlermeldung dort auch schon ohne Resonanz gepostet habe, und ich mit meinen Gamerenglisch gar nicht versuchen m/wag das Problem weiter zu beschreiben. Zumals ja bei anderen funktioniert, nur bei mir nicht. Und ich auch nicht weis obs an meinem PC liegt oder der Platine die ich zusammengeschustert habe.

Edit. Kaum hab ich ein ScreenCapturProgramm eingerichtet um das Fehlverhalten zu dokumentieren und dem zu zeigen funktioniert alles.
 
Zuletzt bearbeitet:
Zurück
Oben