1syntax = "proto3";
2
3package tensorflow;
4
5option cc_enable_arenas = true;
6option java_outer_classname = "DebugProtos";
7option java_multiple_files = true;
8option java_package = "org.tensorflow.framework";
9option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/protobuf/for_core_protos_go_proto";
10
11// Option for watching a node in TensorFlow Debugger (tfdbg).
12message DebugTensorWatch {
13  // Name of the node to watch.
14  // Use "*" for wildcard. But note: currently, regex is not supported in
15  // general.
16  string node_name = 1;
17
18  // Output slot to watch.
19  // The semantics of output_slot == -1 is that all outputs of the node
20  // will be watched (i.e., a wildcard).
21  // Other negative values of output_slot are invalid and will lead to
22  // errors currently.
23  int32 output_slot = 2;
24
25  // Name(s) of the debugging op(s).
26  // One or more than one probes on a tensor.
27  // e.g., {"DebugIdentity", "DebugNanCount"}
28  repeated string debug_ops = 3;
29
30  // URL(s) for debug targets(s).
31  //
32  // Supported URL formats are:
33  //   - file:///foo/tfdbg_dump: Writes out Event content to file
34  //     /foo/tfdbg_dump.  Assumes all directories can be created if they don't
35  //     already exist.
36  //   - grpc://localhost:11011: Sends an RPC request to an EventListener
37  //     service running at localhost:11011 with the event.
38  //   - memcbk:///event_key: Routes tensors to clients using the
39  //     callback registered with the DebugCallbackRegistry for event_key.
40  //
41  // Each debug op listed in debug_ops will publish its output tensor (debug
42  // signal) to all URLs in debug_urls.
43  //
44  // N.B. Session::Run() supports concurrent invocations of the same inputs
45  // (feed keys), outputs and target nodes. If such concurrent invocations
46  // are to be debugged, the callers of Session::Run() must use distinct
47  // debug_urls to make sure that the streamed or dumped events do not overlap
48  // among the invocations.
49  // TODO(cais): More visible documentation of this in g3docs.
50  repeated string debug_urls = 4;
51
52  // Do not error out if debug op creation fails (e.g., due to dtype
53  // incompatibility). Instead, just log the failure.
54  bool tolerate_debug_op_creation_failures = 5;
55}
56
57// Options for initializing DebuggerState in TensorFlow Debugger (tfdbg).
58message DebugOptions {
59  // Debugging options
60  repeated DebugTensorWatch debug_tensor_watch_opts = 4;
61
62  // Caller-specified global step count.
63  // Note that this is distinct from the session run count and the executor
64  // step count.
65  int64 global_step = 10;
66
67  // Whether the total disk usage of tfdbg is to be reset to zero
68  // in this Session.run call. This is used by wrappers and hooks
69  // such as the local CLI ones to indicate that the dumped tensors
70  // are cleaned up from the disk after each Session.run.
71  bool reset_disk_byte_usage = 11;
72}
73
74message DebuggedSourceFile {
75  // The host name on which a source code file is located.
76  string host = 1;
77
78  // Path to the source code file.
79  string file_path = 2;
80
81  // The timestamp at which the source code file is last modified.
82  int64 last_modified = 3;
83
84  // Byte size of the file.
85  int64 bytes = 4;
86
87  // Line-by-line content of the source code file.
88  repeated string lines = 5;
89}
90
91message DebuggedSourceFiles {
92  // A collection of source code files.
93  repeated DebuggedSourceFile source_files = 1;
94}
95