none
Programm arbeitet nur mit Breakpoints RRS feed

  • Frage

  • Hallo, wenn ic nicht mit breakpoints arbeite, dann sehe ich keine Werte [ Console.Writeline(string) ] auf der C# Konsolenausgabe. Wieso ist das so?

    Donnerstag, 16. Februar 2017 17:49

Antworten

  • Hi,

    wird die Anwendung evtl. direkt wieder beendet, das Konsolenfenster also geschlossen?

    Falls ja, wäre es wohl am einfachsten, eine Abfrage wie folgt einzubauen.

    if( System.Diagnostics.Debugger.IsAttached ) {
        Console.ReadLine();
    oder
        Console.ReadKey();
    }

    oder auch:

    #if DEBUG
        Console.ReadLine();
    #endif

    Wenn Du das immer haben willst, also auch bei einem normalen Lauf, lass die Bedingung weg und schreib eben nur:

    Console.ReadLine();
    

    ans Ende der Methode.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Donnerstag, 16. Februar 2017 18:04
    Moderator

Alle Antworten

  • Hi,

    wird die Anwendung evtl. direkt wieder beendet, das Konsolenfenster also geschlossen?

    Falls ja, wäre es wohl am einfachsten, eine Abfrage wie folgt einzubauen.

    if( System.Diagnostics.Debugger.IsAttached ) {
        Console.ReadLine();
    oder
        Console.ReadKey();
    }

    oder auch:

    #if DEBUG
        Console.ReadLine();
    #endif

    Wenn Du das immer haben willst, also auch bei einem normalen Lauf, lass die Bedingung weg und schreib eben nur:

    Console.ReadLine();
    

    ans Ende der Methode.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Donnerstag, 16. Februar 2017 18:04
    Moderator
  • Nein.

    Ich bekomme Daten über "MemoryMappedFile" und will diese auf der Konsole ausgeben.
    nur ist der String eben ller. Ausser bei einem Breakpoint.

    Aufgerufen wird das mit 

    While(true)
    {..}


    wenn ich breakpoints setze, dann kann ich die Daten in den Varaiblen sehen. AUch die Konsolenausgabe passt. Nur ohne Breakpoints eben nicht.

    Donnerstag, 16. Februar 2017 19:35
  • Hallo,

    wenn ich raten müsste, dann würde ich sagen, dass du in der while-Schleife Console.WriteLine aufrufst, auch wenn keine neuen Daten auszugeben sind. Dadurch scrollt sich der eigentlich anzuzeigende Inhalt weg. Ein BreakPoint hält es eben an.

    Irgendwie so etwas wird es wohl sein, was es genau ist können wir dir nur sagen wenn du uns den Code zeigst.


    Viele Grüße, Tom Lambert - MVP, MCC und MSP
    Wozu Antworten markieren und Posts bewerten? Klicke hier
    Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
    Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub

    Donnerstag, 16. Februar 2017 19:43
    Moderator

  • unsafe public DataExchangeIn Mem() { DataExchangeEmailInTmp dataExchangeReadTmp; DataExchangeIn dataExchangeRead; // init dataExchangeRea.... // get size int dataSIze = Marshal.SizeOf(typeof(DataExchangeEmailInTmp)); // Open a mapped file with read access and one with write access. // using (var mmfRead = MemoryMappedFile.CreateOrOpen("_CODESYS_SharedMemoryTest_Write", dataSIze)) using (var mmfRead = MemoryMappedFile.CreateOrOpen("_CODESYS_SharedMemoryTest_Write", dataSIze)) using (var accessorRead = mmfRead.CreateViewAccessor(0, dataSIze, MemoryMappedFileAccess.Read)) // Read the structure accessorRead.Read(0, out dataExchangeReadTmp);

          static void Main(string[] args)
            {
                while (true)
                {
                    Thread.Sleep(100);
    
                    //Read Data from Shared Memory
                    SharedMemoryRead ShareMemRd = new SharedMemoryRead();
                    GVL.SmIn = ShareMemRd.Mem();
    
                   
                    }

    die beiden Codeteile sind aus zwei Unterschiedlichen Klassen, aber wie gesagt, es funktioniert mit breakpoints und zwar wenn bei folgenden Zeilen Breakpoints gestezt werden:

    using (var accessorRead = mmfRead.CreateViewAccessor(0, dataSIze, MemoryMappedFileAccess.Read))

    // Read the structure accessorRead.Read(0, out dataExchangeReadTmp);


    • Bearbeitet Gerri3d Freitag, 17. Februar 2017 11:40
    Donnerstag, 16. Februar 2017 19:49