[RFA 09/10] Return EXT_LANG_BT_ERROR in one more spot in py-framefilter.c

Pedro Alves palves@redhat.com
Tue Jun 27 17:31:00 GMT 2017


On 04/25/2017 08:41 PM, Tom Tromey wrote:
> While reading py-framefilter.c, I found one spot where an exception
> could be caught but then not be turned into EXT_LANG_BT_ERROR.  This
> patch fixes this spot.

Eek.  LGTM.

I wonder whether we could wrap the TRY/CATCHes in something
that would do this exception handling systematically/automatically.
Maybe:

template<typename Func>
enum ext_lang_bt_status success
try_py (Func &&f)
{
  TRY
    {
      f ();
    }
  CATCH (except, RETURN_MASK_ALL)
    {
      gdbpy_convert_exception (except);
      return EXT_LANG_BT_ERROR;
    }
  END_CATCH  

  return EXT_LANG_BT_OK;
}

Used like:

 return try_py ([] 
   {
     // old body of TRY goes here.
   });

Thanks,
Pedro Alves



More information about the Gdb-patches mailing list