none
Debug : come trovare la penultima istruzione RRS feed

  • Domanda

  • Ciao a tutti ,

    scusate le mie domande , forse troppo banali.

    Non ho mai avuto dimestichezza con il debug. Quando ho iniziato a programmare ho trovato più conveniente crearmelo .

    Premesso che l' ambiente è  C#  VisualStudio

    Quando si verifica un errore il debug lo evidenzia . E' sempre inserito in una funzione .

    La domanda è : c'è modo di sapere dove è stata chiamata  questa funzione l'ultima volta prima dell'errore ??

    In pratica procedere passo passo a ritroso ??

    E'  un pò troppo  ??

    Grazie per l'attenzione

    martedì 31 maggio 2022 06:32

Risposte

  • Buongiorno Vittorio,

    Spero che il problema sia risolto? Aveva detto che proverà tra una settimana dal 31 maggio, comunque ormai siamo alla seconda del giugno. 


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    martedì 14 giugno 2022 11:04
    Moderatore

Tutte le risposte

  • Buongiorno Vittorio,

    Potrebbe provare questo:

    using System.Diagnostics;
    // Get call stack
    StackTrace stackTrace = new StackTrace(); 
    // Get calling method name
    Console.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);

    one-liner:

    (new System.Diagnostics.StackTrace()).GetFrame(1).GetMethod().Name

    per referenze - Get Calling Method using Reflection [C#].


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    martedì 31 maggio 2022 08:42
    Moderatore
  • Grazie Yordan ,

    sono certo che non saprò come utilizzare quanto mi hai suggerito

    Tra una settimana ci proverò

    martedì 31 maggio 2022 09:45
  • dovrebbe inserirlo nel codice che sta scrivendo al momento. Se non ha la podssibilita di capire il sito in inglese, potrebbe sempre tradurlo con x es. google translate o altro.

    Cio' che sia detto nella pagina di referenza e': 

    Ottieni il metodo di chiamata usando Reflection [C#]

    Per ottenere il nome del metodo chiamante, utilizzare il metodo StackTrace.GetFrame Crea una nuova istanza di StackTrace e chiama il metodo GetFrame (1). Il parametro è l'indice della chiamata al metodo nello stack di chiamate. L'indice della prima chiamata al metodo (la più vicina) è "1", quindi restituisce uno StackFrame del metodo chiamante (metodo che ha chiamato direttamente il metodo corrente). Per ottenere il nome del metodo, utilizzare StackFrame.GetMethod ( per ottenere MethodBase ) e quindi ottenere il valore della proprietà Name .

    L'esempio seguente mostra come ottenere il nome del metodo chiamante . Questo può essere utile, ad esempio, per scrivere i log di debug.


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    martedì 31 maggio 2022 10:20
    Moderatore
  • Buongiorno Vittorio,

    Spero che il problema sia risolto? Aveva detto che proverà tra una settimana dal 31 maggio, comunque ormai siamo alla seconda del giugno. 


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    martedì 14 giugno 2022 11:04
    Moderatore
  • Grazie  Yordan ,

    mi sembra troppo complicato per le mie conoscenze

    come si dice  "il gioco non vale la candela"

    speravo in qualcosa di più semplice : tipo battere un testo funzione per esempio

    comunque sono molto grato per l'attenzione che trovo nel sito

    grazie ancora a tutti

    martedì 14 giugno 2022 11:48