Announcement

Collapse
No announcement yet.

Visual Studio.Net (2002) C# bringt unterschiedlichen Assembler-code-> Fehler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Visual Studio.Net (2002) C# bringt unterschiedlichen Assembler-code-> Fehler

    Ich benutze Visual Studio .NET (2002) (version: 7.0.9466) und programmiere in C#.
    Ich habe das Problem, daß er bei einigen if(-else)-Bedingungen auf 2 verschiedenen Maschinen (selbe Konfiguration) unterschiedlichen Assembler-code generiert.
    Das schlechte ist: bei mir vergißt er bei der Generierung ein paar "nop"-Commands.

    Hier ein Beispiel zur Verdeutlichung (zur Vereinfachung nur eine if-Bedingung):
    zahlbool ist false

    816: if ( zahlbool == true )
    00001995 cmp dword ptr [ebp+FFFFFF24h],0
    0000199c je 000019B2
    818: lc2i = 1;
    0000199e mov dword ptr [ebp+FFFFFF2Ch],1
    819: lc2i = 0;
    000019a8 mov dword ptr [ebp+FFFFFF2Ch],0
    000019b2 jmp 00001D27

    zwischen 19a8 und 19b2 fehlt das nop-Command und deshalb zeigt er mir im normale Debugger (quellcode) so an, wie wenn die Zeile 819 ausgeführt würde. Bei dem anderen Rechner generiert er das nop-command dazu und somit läuft er da automatisch weiter, wodurch diese zeile im Debugger nie als aktiv markiert wird.

    Alles in allem ist es kein wirklicher Fehler (weil die Funktion ja immer noch die selbe ist), allerdings kann man auch nicht wirklich damit arbeiten, wenn man nicht weiß, welche Befehle jetzt wirklich ausgeführt werden (immer im Assembler nachzuschauen ist "etwas" zeitaufwendig).

    Ich habe mir schon alle möglichen Optionen in Visual Studio .Net durchgeschaut, ohne irgendwo etwas passendes zu finden, um diesen Fehler zu beheben.
    Des weiteren habe ich auch schon das Studio neu installiert, allerdings auch ohne Wirkung.

    Wenn jemand auch nur die leiseste Ahnung hat, wie man diesen Fehler beheben/umgehen könnte, wäre ich sehr froh.

    Vielen Dank schon im Vorraus
    Azrael
Working...
X