@@ -328,7 +328,8 @@ def call(self, objs: Iterable[drgn.Object]) -> Iterable[drgn.Object]:
328328 yield from self .__invalid_memory_objects_check (
329329 result , not issubclass (self .__class__ , SingleInputCommand ))
330330 except drgn .FaultError as err :
331- raise CommandError (self .name , f"invalid memory access: { str (err )} " )
331+ raise CommandError (self .name ,
332+ f"invalid memory access: { str (err )} " ) from err
332333
333334
334335class SingleInputCommand (Command ):
@@ -409,15 +410,16 @@ def __init__(self,
409410 tname = " " .join (self .args .type )
410411 try :
411412 self .type = target .get_type (tname )
412- except LookupError :
413- raise CommandError (self .name , f"could not find type '{ tname } '" )
413+ except LookupError as err :
414+ raise CommandError (self .name ,
415+ f"could not find type '{ tname } '" ) from err
414416
415417 def _call (self , objs : Iterable [drgn .Object ]) -> Iterable [drgn .Object ]:
416418 for obj in objs :
417419 try :
418420 yield drgn .cast (self .type , obj )
419421 except TypeError as err :
420- raise CommandError (self .name , str (err ))
422+ raise CommandError (self .name , str (err )) from err
421423
422424
423425class Dereference (Command ):
@@ -546,8 +548,8 @@ def _call(self, objs: Iterable[drgn.Object]) -> Iterable[drgn.Object]:
546548 for symbol in self .args .symbols :
547549 try :
548550 yield Address .resolve_for_address (symbol )
549- except KeyError :
550- raise SymbolNotFoundError (self .name , symbol )
551+ except KeyError as err :
552+ raise SymbolNotFoundError (self .name , symbol ) from err
551553
552554
553555class Walk (Command ):
0 commit comments