Forgot to catch Bug exception. GCell manage 5 terminals of a Net.
* Bug: In Hurricane, in HApplication, ExceptionWidget ans PyHurricane.h, forgot to catch the Hurricane::Bug exception which was leading to terminate() without explanations. * Change: In Katabatic, In GCellTopology, now support one GCell with five metal1 terminal of the same net. This unlikely configuration did appear in the SNX for the first time...
This commit is contained in:
parent
13c3efdefd
commit
1ef4bc122f
|
@ -29,6 +29,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -34,6 +34,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Hurricane::DataBase;
|
||||
|
|
|
@ -29,8 +29,10 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Hurricane::Exception;
|
||||
using Isobar::ProxyProperty;
|
||||
using Isobar::ProxyError;
|
||||
using Isobar::ConstructorError;
|
||||
|
|
|
@ -29,6 +29,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -40,6 +40,8 @@ namespace CRL {
|
|||
using std::endl;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -1,15 +1,9 @@
|
|||
|
||||
// -*- C++ -*-
|
||||
//
|
||||
// This file is part of the Coriolis Software.
|
||||
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
|
||||
// Copyright (c) UPMC 2010-2016, All Rights Reserved
|
||||
//
|
||||
// ===================================================================
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// x-----------------------------------------------------------------x
|
||||
// | |
|
||||
// +-----------------------------------------------------------------+
|
||||
// | C O R I O L I S |
|
||||
// | Alliance / Hurricane Interface |
|
||||
// | |
|
||||
|
@ -17,10 +11,7 @@
|
|||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||
// | =============================================================== |
|
||||
// | C++ Module : "./PyCatalogState.cpp" |
|
||||
// | *************************************************************** |
|
||||
// | U p d a t e s |
|
||||
// | |
|
||||
// x-----------------------------------------------------------------x
|
||||
// +-----------------------------------------------------------------+
|
||||
|
||||
|
||||
#include "hurricane/isobar/PyCell.h"
|
||||
|
@ -37,6 +28,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -28,6 +28,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -28,6 +28,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -30,6 +30,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -31,6 +31,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -29,6 +29,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -36,6 +36,8 @@ namespace CRL {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Isobar::ProxyProperty;
|
||||
|
|
|
@ -36,6 +36,8 @@ namespace Etesian {
|
|||
using Hurricane::tab;
|
||||
using Hurricane::trace_on;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Hurricane::ExceptionWidget;
|
||||
|
|
|
@ -19,12 +19,7 @@
|
|||
// License along with Hurricane. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ===================================================================
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// x-----------------------------------------------------------------x
|
||||
// | |
|
||||
// +-----------------------------------------------------------------+
|
||||
// | H U R R I C A N E |
|
||||
// | V L S I B a c k e n d D a t a - B a s e |
|
||||
// | |
|
||||
|
@ -32,14 +27,11 @@
|
|||
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||
// | =============================================================== |
|
||||
// | C++ Header : "./hurricane/Bug.h" |
|
||||
// | *************************************************************** |
|
||||
// | U p d a t e s |
|
||||
// | |
|
||||
// x-----------------------------------------------------------------x
|
||||
// +-----------------------------------------------------------------+
|
||||
|
||||
|
||||
# ifndef __HURRICANE_BUG__
|
||||
# define __HURRICANE_BUG__
|
||||
#ifndef HURRICANE_BUG_H
|
||||
#define HURRICANE_BUG_H
|
||||
|
||||
# include "hurricane/Exception.h"
|
||||
|
||||
|
@ -75,7 +67,7 @@ namespace Hurricane {
|
|||
inline int Bug::getCode () const { return _code; }
|
||||
|
||||
|
||||
} // End of Hurricane namespace.
|
||||
} // Hurricane namespace.
|
||||
|
||||
|
||||
GETSTRING_POINTER_SUPPORT(Hurricane::Bug);
|
||||
|
@ -84,4 +76,4 @@ IOSTREAM_POINTER_SUPPORT(Hurricane::Bug);
|
|||
IOSTREAM_VALUE_SUPPORT(Hurricane::Bug);
|
||||
|
||||
|
||||
# endif // __HURRICANE_BUG__
|
||||
#endif // HURRICANE_BUG_H
|
||||
|
|
|
@ -19,12 +19,7 @@
|
|||
// License along with Hurricane. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ===================================================================
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// x-----------------------------------------------------------------x
|
||||
// | |
|
||||
// +-----------------------------------------------------------------+
|
||||
// | H U R R I C A N E |
|
||||
// | V L S I B a c k e n d D a t a - B a s e |
|
||||
// | |
|
||||
|
@ -32,14 +27,11 @@
|
|||
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||
// | =============================================================== |
|
||||
// | C++ Header : "./hurricane/Warning.h" |
|
||||
// | *************************************************************** |
|
||||
// | U p d a t e s |
|
||||
// | |
|
||||
// x-----------------------------------------------------------------x
|
||||
// +-----------------------------------------------------------------+
|
||||
|
||||
|
||||
# ifndef __HURRICANE_WARNING__
|
||||
# define __HURRICANE_WARNING__
|
||||
# ifndef HURRICANE_WARNING_H
|
||||
# define HURRICANE_WARNING_H
|
||||
|
||||
#include "hurricane/Exception.h"
|
||||
|
||||
|
@ -76,7 +68,7 @@ namespace Hurricane {
|
|||
inline int Warning::getCode () const { return _code; }
|
||||
|
||||
|
||||
} // End of Hurricane namespace.
|
||||
} // Hurricane namespace.
|
||||
|
||||
|
||||
GETSTRING_POINTER_SUPPORT(Hurricane::Warning);
|
||||
|
@ -85,4 +77,4 @@ IOSTREAM_POINTER_SUPPORT(Hurricane::Warning);
|
|||
IOSTREAM_VALUE_SUPPORT(Hurricane::Warning);
|
||||
|
||||
|
||||
# endif // __HURRICANE_WARNING__
|
||||
#endif // HURRICANE_WARNING_H
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include "hurricane/Bug.h"
|
||||
#include "hurricane/Error.h"
|
||||
#include "hurricane/Warning.h"
|
||||
#include "hurricane/isobar/ProxyProperty.h"
|
||||
|
@ -1408,6 +1409,16 @@ extern "C" {
|
|||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
return NULL; \
|
||||
} \
|
||||
catch ( const Bug& e ) { \
|
||||
std::string message = "\n" + getString(e); \
|
||||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
return NULL; \
|
||||
} \
|
||||
catch ( const Exception& e ) { \
|
||||
std::string message = "\nUnknown Hurricane::Exception"; \
|
||||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
return NULL; \
|
||||
} \
|
||||
catch ( const std::exception& e ) { \
|
||||
std::string message = "\n" + std::string(e.what()); \
|
||||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
|
@ -1416,7 +1427,7 @@ extern "C" {
|
|||
catch ( ... ) { \
|
||||
std::string message = \
|
||||
"\nUnmanaged exception, neither a Hurricane::Error nor" \
|
||||
"std::exception."; \
|
||||
" a std::exception."; \
|
||||
PyErr_SetString ( HurricaneError, message.c_str() ); \
|
||||
return NULL; \
|
||||
} \
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <QFrame>
|
||||
#include <QFont>
|
||||
#include <QFontMetrics>
|
||||
#include "hurricane/Bug.h"
|
||||
#include "hurricane/Error.h"
|
||||
#include "hurricane/Exception.h"
|
||||
#include "hurricane/viewer/Graphics.h"
|
||||
|
@ -71,6 +72,9 @@ namespace Hurricane {
|
|||
method();
|
||||
failure = false;
|
||||
}
|
||||
catch ( Bug& e ) {
|
||||
ExceptionWidget::run( e );
|
||||
}
|
||||
catch ( Error& e ) {
|
||||
ExceptionWidget::run( e );
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include "hurricane/Bug.h"
|
||||
#include "hurricane/Error.h"
|
||||
#include "hurricane/viewer/Graphics.h"
|
||||
#include "hurricane/viewer/ExceptionWidget.h"
|
||||
|
@ -67,6 +68,9 @@ namespace Hurricane {
|
|||
try {
|
||||
return QApplication::notify( object, event );
|
||||
}
|
||||
catch ( Bug& e ) {
|
||||
ExceptionWidget::run( e );
|
||||
}
|
||||
catch ( Error& e ) {
|
||||
ExceptionWidget::run( e );
|
||||
}
|
||||
|
|
|
@ -658,12 +658,12 @@ namespace {
|
|||
void _do_xG_xM3 ();
|
||||
|
||||
private:
|
||||
enum ConnexityBits { GlobalBSize = 3
|
||||
, Metal1BSize = 3
|
||||
, Metal2BSize = 3
|
||||
, Metal3BSize = 3
|
||||
, PadsBSize = 3
|
||||
, PinsBSize = 3
|
||||
enum ConnexityBits { GlobalBSize = 4
|
||||
, Metal1BSize = 4
|
||||
, Metal2BSize = 4
|
||||
, Metal3BSize = 4
|
||||
, PadsBSize = 4
|
||||
, PinsBSize = 4
|
||||
};
|
||||
|
||||
#define CONNEXITY_VALUE( Gs, M1s, M2s, M3s, pads, pins ) \
|
||||
|
@ -683,6 +683,7 @@ namespace {
|
|||
, Conn_1G_2M1 = CONNEXITY_VALUE( 1, 2, 0, 0, 0 , 0 )
|
||||
, Conn_1G_3M1 = CONNEXITY_VALUE( 1, 3, 0, 0, 0 , 0 )
|
||||
, Conn_1G_4M1 = CONNEXITY_VALUE( 1, 4, 0, 0, 0 , 0 )
|
||||
, Conn_1G_5M1 = CONNEXITY_VALUE( 1, 5, 0, 0, 0 , 0 )
|
||||
, Conn_1G_1M2 = CONNEXITY_VALUE( 1, 0, 1, 0, 0 , 0 )
|
||||
, Conn_1G_2M2 = CONNEXITY_VALUE( 1, 0, 2, 0, 0 , 0 )
|
||||
, Conn_1G_3M2 = CONNEXITY_VALUE( 1, 0, 3, 0, 0 , 0 )
|
||||
|
@ -823,6 +824,16 @@ namespace {
|
|||
_net = fromSegment->getNet();
|
||||
|
||||
forEach ( Hook*, hook, fromHook->getHooks() ) {
|
||||
ltrace(99) << "Topology [" << _connexity.connexity << "] = "
|
||||
<< "[" << _connexity.fields.globals
|
||||
<< "+" << _connexity.fields.M1
|
||||
<< "+" << _connexity.fields.M2
|
||||
<< "+" << _connexity.fields.M3
|
||||
<< "+" << _connexity.fields.Pin
|
||||
<< "+" << _connexity.fields.Pad
|
||||
<< "] " << _gcell
|
||||
<< endl;
|
||||
|
||||
Segment* toSegment = dynamic_cast<Segment*>( hook->getComponent() );
|
||||
|
||||
if (toSegment) {
|
||||
|
@ -923,7 +934,8 @@ namespace {
|
|||
case Conn_1G_1M1: _do_1G_1M1(); break;
|
||||
case Conn_1G_2M1:
|
||||
case Conn_1G_3M1:
|
||||
case Conn_1G_4M1: _do_1G_xM1(); break;
|
||||
case Conn_1G_4M1:
|
||||
case Conn_1G_5M1: _do_1G_xM1(); break;
|
||||
case Conn_1G_1M2:
|
||||
case Conn_1G_2M2:
|
||||
case Conn_1G_3M2:
|
||||
|
|
|
@ -36,6 +36,8 @@ namespace Kite {
|
|||
using std::ostringstream;
|
||||
using Hurricane::tab;
|
||||
using Hurricane::in_trace;
|
||||
using Hurricane::Exception;
|
||||
using Hurricane::Bug;
|
||||
using Hurricane::Error;
|
||||
using Hurricane::Warning;
|
||||
using Hurricane::ExceptionWidget;
|
||||
|
|
|
@ -29,6 +29,7 @@ namespace bopts = boost::program_options;
|
|||
#include "hurricane/DebugSession.h"
|
||||
#include "hurricane/DataBase.h"
|
||||
#include "hurricane/Cell.h"
|
||||
#include "hurricane/Bug.h"
|
||||
#include "hurricane/Warning.h"
|
||||
#include "hurricane/UpdateSession.h"
|
||||
#include "hurricane/viewer/Script.h"
|
||||
|
@ -435,6 +436,10 @@ int main ( int argc, char *argv[] )
|
|||
if ( not destroyDatabase ) exit ( 0 );
|
||||
cmess1 << " o Full database deletion (may be buggy)." << endl;
|
||||
}
|
||||
catch ( Bug& e ) {
|
||||
cerr << e.what() << endl;
|
||||
exit ( 1 );
|
||||
}
|
||||
catch ( Error& e ) {
|
||||
cerr << e.what() << endl;
|
||||
cerr << "\nProgram stack:\n" << e.where() << endl;
|
||||
|
|
Loading…
Reference in New Issue