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