|  | // 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. | 
|  |  | 
|  | // +build ignore | 
|  |  | 
|  | 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") | 
|  | } |