@@ -310,18 +310,25 @@ def _format_coroutine(coro):
310310 if coro_name is None :
311311 coro_name = events ._format_callback (func , (), {})
312312
313- try :
314- coro_code = coro .gi_code
315- except AttributeError :
313+ coro_code = None
314+ if hasattr (coro , 'cr_code' ) and coro .cr_code :
316315 coro_code = coro .cr_code
316+ elif hasattr (coro , 'gi_code' ) and coro .gi_code :
317+ coro_code = coro .gi_code
317318
318- try :
319- coro_frame = coro .gi_frame
320- except AttributeError :
319+ coro_frame = None
320+ if hasattr (coro , 'cr_frame' ) and coro .cr_frame :
321321 coro_frame = coro .cr_frame
322+ elif hasattr (coro , 'gi_frame' ) and coro .gi_frame :
323+ coro_frame = coro .gi_frame
324+
325+ filename = '<empty co_filename>'
326+ if coro_code and coro_code .co_filename :
327+ filename = coro_code .co_filename
322328
323- filename = coro_code .co_filename
324329 lineno = 0
330+ coro_repr = coro_name
331+
325332 if (isinstance (coro , CoroWrapper ) and
326333 not inspect .isgeneratorfunction (coro .func ) and
327334 coro .func is not None ):
@@ -338,7 +345,7 @@ def _format_coroutine(coro):
338345 lineno = coro_frame .f_lineno
339346 coro_repr = ('%s running at %s:%s'
340347 % (coro_name , filename , lineno ))
341- else :
348+ elif coro_code :
342349 lineno = coro_code .co_firstlineno
343350 coro_repr = ('%s done, defined at %s:%s'
344351 % (coro_name , filename , lineno ))
0 commit comments