@ -218,6 +218,10 @@ class Event(object):
Properties of the event .
args : Arguments
The event arguments .
lineno : int
The line number in the input file .
filename : str
The path to the input file .
"""
@ -230,7 +234,7 @@ class Event(object):
_VALID_PROPS = set ( [ " disable " , " tcg " , " tcg-trans " , " tcg-exec " , " vcpu " ] )
def __init__ ( self , name , props , fmt , args , orig = None ,
def __init__ ( self , name , props , fmt , args , lineno , filename , orig = None ,
event_trans = None , event_exec = None ) :
"""
Parameters
@ -243,6 +247,10 @@ class Event(object):
Event printing format string ( s ) .
args : Arguments
Event arguments .
lineno : int
The line number in the input file .
filename : str
The path to the input file .
orig : Event or None
Original Event before transformation / generation .
event_trans : Event or None
@ -255,6 +263,8 @@ class Event(object):
self . properties = props
self . fmt = fmt
self . args = args
self . lineno = int ( lineno )
self . filename = str ( filename )
self . event_trans = event_trans
self . event_exec = event_exec
@ -276,16 +286,21 @@ class Event(object):
def copy ( self ) :
""" Create a new copy. """
return Event ( self . name , list ( self . properties ) , self . fmt ,
self . args . copy ( ) , self , self . event_trans , self . event_exec )
self . args . copy ( ) , self . lineno , self . filename ,
self , self . event_trans , self . event_exec )
@staticmethod
def build ( line_str ) :
def build ( line_str , lineno , filename ) :
""" Build an Event instance from a string.
Parameters
- - - - - - - - - -
line_str : str
Line describing the event .
lineno : int
Line number in input file .
filename : str
Path to input file .
"""
m = Event . _CRE . match ( line_str )
assert m is not None
@ -315,7 +330,7 @@ class Event(object):
if " tcg " in props and isinstance ( fmt , str ) :
raise ValueError ( " Events with ' tcg ' property must have two format strings " )
event = Event ( name , props , fmt , args )
event = Event ( name , props , fmt , args , lineno , filename )
# add implicit arguments when using the 'vcpu' property
import tracetool . vcpu
@ -360,6 +375,8 @@ class Event(object):
list ( self . properties ) ,
self . fmt ,
self . args . transform ( * trans ) ,
self . lineno ,
self . filename ,
self )
@ -386,7 +403,7 @@ def read_events(fobj, fname):
continue
try :
event = Event . build ( line )
event = Event . build ( line , lineno , fname )
except ValueError as e :
arg0 = ' Error at %s : %d : %s ' % ( fname , lineno , e . args [ 0 ] )
e . args = ( arg0 , ) + e . args [ 1 : ]