exp/template: include function name in error returned by function or method call.

R=golang-dev, rsc, r
CC=golang-dev
https://golang.org/cl/4711049
diff --git a/src/pkg/exp/template/exec.go b/src/pkg/exp/template/exec.go
index a7af9b4..6b07580 100644
--- a/src/pkg/exp/template/exec.go
+++ b/src/pkg/exp/template/exec.go
@@ -455,7 +455,7 @@
 	result := fun.Call(argv)
 	// If we have an os.Error that is not nil, stop execution and return that error to the caller.
 	if len(result) == 2 && !result[1].IsNil() {
-		s.error(result[1].Interface().(os.Error))
+		s.errorf("error calling %s: %s", name, result[1].Interface().(os.Error))
 	}
 	return result[0]
 }
diff --git a/src/pkg/exp/template/exec_test.go b/src/pkg/exp/template/exec_test.go
index 7e0301c8..112adbf 100644
--- a/src/pkg/exp/template/exec_test.go
+++ b/src/pkg/exp/template/exec_test.go
@@ -395,6 +395,9 @@
 	if err == nil {
 		t.Errorf("expected error; got none")
 	} else if !strings.Contains(err.String(), os.EPERM.String()) {
+		if *debug {
+			fmt.Printf("test execute error: %s\n", err)
+		}
 		t.Errorf("expected os.EPERM; got %s", err)
 	}
 }