BUG in Visual Studio 2012

  • VB.NET
  • .NET (FX) 4.0

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von WhitePage.

    BUG in Visual Studio 2012

    Hallo,

    ich habe Probleme beim debuggen. Die meistens Variablen zeigen mir mit der Maus "0" an. Ich verstehe nicht wieso aber zum Beispiel wie hier:

    VB.NET-Quellcode

    1. For i As Integer = 0 To xxx.Count - 1 Step 1
    2. If i = 1 Then
    3. Dim x As Double = 0
    4. End If
    5. Next



    Bei diesem Beispiel in Z3 müsste er reingehen wenn i = 1. Wenn ich den Anhaltepunkt auf Z3 stelle und durchlaufen lasse geht er rein in die Z3 aber die Variable i in Z2 bleibt 0. Hat jemand das Problem auch ???? Ich werde wahnsinnig. Nicht nur hier auch in anderen Variablen ist es so.

    Zum Beispiel wenn ich eine Variable zuweise wie:

    dim abc As Bauteil = variableBeinhaltetBauteil

    dann zeigt er mir in abc nothing an, obwohl da eine Variable ist. Das Programm läuft ganz normal aber ich kann nicht die aktuellen Werte beim durchlaufen sehen.

    BITTE UM HILFE :(((

    PS: Ich habe Windoof 10 und Visual studio 2012 Premium Versino 11.0.61219.00 Update 5, .NET 4.0

    VB-Tags eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Ääähm, mal doof gefragt: Aber hast du schon mal nachgeschaut was xxx.Count - 1 ausgewertet ergibt?
    So wie das für mich aussieht ergibt das 0 und deine Schleife zählt dann von 0 bis 0 - > Kein einziger Durchgang
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @Radinator ja da sind 7 Objekte. Nein ganz sicher nicht von 0->0. Sondern 0->7-1. Die Ergebnisse sehe ich im Programm und die sind richtig.

    @MrTrebron ja ziemlich sicher, weil es mal funktioniert hat und immernoch funktioniert. Die Ergebnisse im Programm sind richtig.

    @WhitePage Das kann doch nicht sein. Wenn Z3 markiert ist und auch dort der Anhaltspunkt ist, hat doch Z2 schon einen Wert sonst könnte die IF Bedingung ja nicht stattfinden.

    Zitate entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Möchte mal kurz anmerken dass du, wenn diese 4 Zeilen hier:

    VB.NET-Quellcode

    1. For i As Integer = 0 To xxx.Count - 1 Step 1
    2. If i = 1 Then
    3. Dim x As Double = 0
    4. End If


    dein Kompletter Quellcode sind, die For schleife nicht komplett hast.
    Dir fehlt das Next.

    Verwendest du denn Option Strict On in deinem Projekt wäre eigentlich meine Hauptfrage zu diesem Problem.
    Schon mal alles nacheinander durch debugged und geschaut was wann passiert ? Eventuell kannst du dir selbst die Lösung geben.
    Hi,

    nein das war ja nur ein Beispiel. Mein Quellcode ist ziemlich lang und kann leider das auch nicht veröffentlichen. Ist Copyright.

    Also nochmal:

    VB.NET-Quellcode

    1. For i As Integer = 0 To 7 - 1 Step 1
    2. If i = 1 Then
    3. Dim x As Double = 0
    4. End If
    5. Next


    Die Z3 habe ich nur so deklariert damit ich da einen Anhaltepunkt habe. Weil danach noch weitere Funktionen aufgerufen werden.

    Es geht mir aber darum wieso meine Variablen immer als 0 oder nothing zeigen obwohl sie was zugewiesen bekommen haben. Irgendwas stimmt doch mit dem Editor nicht.


    Also hier ein kurzer Text vom Code:

    VB.NET-Quellcode

    1. For lFIndex As Integer = 0 To LastfallListeMast.Count - 1 Step 1
    2. For windIndex As Integer = 0 To windrichtung.Length - 1 Step 1
    3. For kombinatinosIndex As Integer = 0 To anbauteileKombi.Count - 1 Step 1
    4. Dim kombination As List(Of Tv_Anbauteile) = anbauteileKombi(kombinatinosIndex)
    5. 'MAST Karakteristischen Werte Berechnen
    6. Dim mastFormel As New MbFormelnMast
    7. mastFormel.staendigelasten(mastliste(m).mast)
    8. If LastfallListeMast(lFIndex).windlastenExists = True Then
    9. If lFIndex = 1 Then
    10. Dim irgendwas As Double = 0
    11. End If
    12. mastFormel.windlastStandsicherheit(mastliste(m).mast, mEiswindfaktoren, LastfallListeMast(lFIndex).teilsichkombiid)
    13. End If


    Bei LastfallListeMast.Count steht wenn ich mit der Maus draufgehe: "LastfallListeMast = Count = Da bei dieser Auswertung Nebeneffekte auftreten können, wird sie nur nach der Aktivierung durch den Benutzer ausgeführt."

    Komisch hatte ich noch nie.

    Zitat entfernt. VB-Tags eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Hi,

    habe folgendes Programm

    VB.NET-Quellcode

    1. Module Program
    2. Sub Main()
    3. For i As Integer = 0 To 6 Step 1
    4. If i = 1 Then
    5. Dim dbl As Double = 1
    6. Console.WriteLine("i: " & i & " dbl:" & dbl)
    7. End If
    8. Next
    9. Console.ReadKey()
    10. End Sub
    11. End Module


    in VS 2015 und SharpDevelop getestet und erhalte jeweils die Consolenausgabe:

    i=1 dbl=1
    .

    Läuft also korrekt. Bei Einzelschritten, wird der Index-Variablen i auch korrekte Werte zugewiesen (Kontrolliert mit der Maus). Schätze, es wird ein lokales Problem in deinen Einstellungen sein.

    Gruß,

    Mario

    Unnötige Leerzeilen entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Hi,

    ja sollte auch so schön laufen mit der Kontrolle. Ich denke auch, dass es an den Einstellungen liegt, finde aber keine Lösung. Ich hatte mal Devexpress addon etc. installiert. Und ich glaube es ist danach passiert. Von Windows 8.1 auf 10 habe ich auch geupdatet ich denke aber das es nicht daran liegt.

    Zitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Ja hab es mir angeschaut. Aber benutze vb.net compiler. Dieser Link führt zu fortran compiler. Da haben welche auch für c# gefragt aber keine Antwort bekommen.

    Zitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    @WhitePage Jou.
    @ghostho Wechsle das Studio. Von VS2012 hab ich noch nix Gutes gehört.
    Und:
    Lass das vollständige Zitieren von Posts über Dir.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Da das Problem offensichtlich an der IDE liegt, würde ich da ansetzen. Deinstallieren, dann neu installieren. Andere Versionen (2013 und 2015) ausprobieren usw.


    ghostho schrieb:

    PS: Ich habe Windoof 10 und Visual studio 2012 Premium Versino 11.0.61219.00 Update 5, .NET 4.0


    Vielleicht ist es auch die Kombination aus Win10 und VS2012.
    Hi,

    also nach neuer installation auch die neue Version 2015 hat es nichts gebracht. JETZT KOMMTS !

    Wenn ich den Variablennamen ändere über unbenennen. Dann sehe ich auf einmal den Wert mit der Maus. Wenn ich es rückgängig machen dann wieder nicht. HEUL !!! Das ist doch ein BUG oder nicht ?

    If lFIndex = 1 Then
    Dim irgendwas As Double = 0
    End If


    Wenn ich hier zum Beispiel den lFindex in index ändere, dann läuft es auf einmal. Hatte jemand schon mal dieses Area51 problem gehabt ?

    ghostho schrieb:

    Dim irgendwas As Double = 0
    Dieser Code dürfte wegoptimiert werden, auch in der Debug.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kann es sein, dass du verschiedene Variablen mit gleiche Namen innerhalb und außerhalb der Methode deklariert hast?
    Das kann unter Umständen zu Verwirrung führen (Sowohl beim User als auch in der IDE)

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten