]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/trace: add example about trace.Start/Stop
authorAndré Carvalho <asantostc@gmail.com>
Tue, 25 Jul 2017 22:18:58 +0000 (19:18 -0300)
committerHyang-Ah Hana Kim <hyangah@gmail.com>
Tue, 29 Aug 2017 16:58:43 +0000 (16:58 +0000)
This commit adds an example to the runtime/trace package
on how to use the trace.Start and trace.Stop functions
to trace the execution of a Go program and write
its trace output to a file.

Change-Id: Idf920398f1c3b9d185af9df5ce9293f2361db022
Reviewed-on: https://go-review.googlesource.com/51170
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
src/runtime/trace/example_test.go [new file with mode: 0644]

diff --git a/src/runtime/trace/example_test.go b/src/runtime/trace/example_test.go
new file mode 100644 (file)
index 0000000..ba96a82
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package trace_test
+
+import (
+       "fmt"
+       "log"
+       "os"
+       "runtime/trace"
+)
+
+// Example demonstrates the use of the trace package to trace
+// the execution of a Go program. The trace output will be
+// written to the file trace.out
+func Example() {
+       f, err := os.Create("trace.out")
+       if err != nil {
+               log.Fatalf("failed to create trace output file: %v", err)
+       }
+       defer func() {
+               if err := f.Close(); err != nil {
+                       log.Fatalf("failed to close trace file: %v", err)
+               }
+       }()
+
+       if err := trace.Start(f); err != nil {
+               log.Fatalf("failed to start trace: %v", err)
+       }
+       defer trace.Stop()
+
+       // your program here
+       RunMyProgram()
+}
+
+func RunMyProgram() {
+       fmt.Printf("this function will be traced")
+}