diff options
author | JeffB42 <10328858+JeffB42@users.noreply.github.com> | 2021-03-13 20:12:48 +0300 |
---|---|---|
committer | JeffB42 <10328858+JeffB42@users.noreply.github.com> | 2021-03-13 20:12:48 +0300 |
commit | 454f25043464428ea6e9912a9b9435e34d6c1444 (patch) | |
tree | e00425c2be5edebb5f92d4c16eae0ff363579732 /main.go | |
parent | fcf2c9b832c2fabfa5ef07dcb7f1e71a378f9f27 (diff) |
added logging to try and catch if the app unexpectedly quits
Diffstat (limited to 'main.go')
-rwxr-xr-x | main.go | 50 |
1 files changed, 50 insertions, 0 deletions
@@ -7,6 +7,7 @@ import ( "os" "os/user" "path/filepath" + "runtime" "strconv" "strings" @@ -65,6 +66,55 @@ func init() { func main() { + defer func() { + standardLog.Println("main's defer() was called, now calling recover()") + rec := recover(); + if rec != nil { + standardLog.Println("main's defer() - recover:", rec) + } else { + standardLog.Println("main's defer() - recover was nil") + } + + var ms runtime.MemStats + runtime.ReadMemStats(&ms) + + /* + programCounter, fileName, lineNumber, infoWasRecovered := runtime.Caller(2) + standardLog.Println("main's defer() - programCounter:", programCounter) + standardLog.Println("main's defer() - fileName:", fileName) + standardLog.Println("main's defer() - lineNumber:", lineNumber) + standardLog.Println("main's defer() - infoWasRecovered:", infoWasRecovered) + */ + + pc := make([]uintptr, 20) + numberOfPcEntries := runtime.Callers(0, pc) + if numberOfPcEntries > 10 { + numberOfPcEntries = 10 + } + + for i := 1; i < numberOfPcEntries; i++ { + /* + standardLog.Printf("main's defer() - [%d]", i) + standardLog.Printf("main's defer() - [%d]", numberOfPcEntries) + + programCounter, fileName, lineNumber, infoWasRecovered := runtime.Caller(i) + standardLog.Printf("main's defer() - programCounter[%d]: %v", i, programCounter) + standardLog.Printf("main's defer() - fileName[%d]: %v", i, fileName) + standardLog.Printf("main's defer() - lineNumber[%d]: %v", i, lineNumber) + standardLog.Printf("main's defer() - infoWasRecovered[%d]: %v", i, infoWasRecovered) + standardLog.Println("") + */ + + _, fileName, lineNumber, infoWasRecovered := runtime.Caller(i) + if infoWasRecovered { + standardLog.Printf("main's defer() - [%d] %s, line %d", i, fileName, lineNumber) + } + } + + standardLog.Println("main's defer() was called, now exiting func()") + }() + + logger.Debug("+") logger.Debug("+") logger.TraceEnter("OctoScreen - main.main()") |