1syntax = "proto3"; 2 3package tensorflow; 4 5option cc_enable_arenas = true; 6option java_outer_classname = "GraphDebugInfoProtos"; 7option java_multiple_files = true; 8option java_package = "org.tensorflow.framework"; 9 10option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/protobuf"; 11 12message GraphDebugInfo { 13 // This represents a file/line location in the source code. 14 message FileLineCol { 15 // File name index, which can be used to retrieve the file name string from 16 // `files`. The value should be between 0 and (len(files)-1) 17 int32 file_index = 1; 18 19 // Line number in the file. 20 int32 line = 2; 21 22 // Col number in the file line. 23 int32 col = 3; 24 25 // Name of function contains the file line. 26 string func = 4; 27 28 // Source code contained in this file line. 29 string code = 5; 30 } 31 32 // This represents a stack trace which is a ordered list of `FileLineCol`. 33 message StackTrace { 34 // Each line in the stack trace. 35 repeated FileLineCol file_line_cols = 1; 36 } 37 38 // This stores all the source code file names and can be indexed by the 39 // `file_index`. 40 repeated string files = 1; 41 42 // This maps a node name to a stack trace in the source code. 43 // The map key is a mangling of the containing function and op name with 44 // syntax: 45 // op.name '@' func_name 46 // For ops in the top-level graph, the func_name is the empty string. 47 // Note that op names are restricted to a small number of characters which 48 // exclude '@', making it impossible to collide keys of this form. Function 49 // names accept a much wider set of characters. 50 // It would be preferable to avoid mangling and use a tuple key of (op.name, 51 // func_name), but this is not supported with protocol buffers. 52 map<string, StackTrace> traces = 2; 53} 54