Skip to content

Commit 63c1188

Browse files
authored
Merge pull request #8976 from The-OpenROAD-Project-staging/secure-default_logger-for-test
Moved DB_ECO debug log location before block->journal_ check
2 parents b160876 + 79f5dba commit 63c1188

20 files changed

+1060
-1069
lines changed

src/odb/doc/debugMessages.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# OpenDB Debug Messages
2+
3+
## Groups
4+
5+
### DB editing
6+
- Group Name: `DB_EDIT`
7+
- Levels:
8+
1. Netlist editing operations (e.g., connect, disconnect, create, ...).
9+
2. Other operations. (e.g., create dbGuide, add resistance segment, adjust cap node, field value update, ...).
10+
11+
### ECO journal
12+
- Group Name: `DB_ECO`
13+
- Levels:
14+
1. Certain operations (e.g., create dbCCSeg)
15+
2. Most ECO operations
16+
3. Undo ECO operations + dbGuide creation
17+
4. Undo ECO status change (e.g., start of undo, early exit of undo, ...)
18+
19+
### Replace design
20+
- Group Name: `replace_design`
21+
- Levels:
22+
1. Module/Instance/Port creation and connection operations.
23+
2. Print iterms in a new module during swap master operation.
24+
3. Skipping non-internal nets during replacement.
25+
26+
### Verilog Reader
27+
- Group Name: `dbReadVerilog`
28+
- Levels:
29+
1. High-level hierarchy creation (Blocks, Modules, Instances, Ports), Properties, Linking, and dumping block content.
30+
2. Detailed netlist creation (Nets, Connections, Child instances).
31+
32+
### Get Default Vias
33+
- Group Name: `get_default_vias`
34+
- Levels:
35+
1. Default via resolution process (candidates, selection, or missing defaults).

src/odb/include/odb/dbObject.h

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,20 @@ class dbObject
170170

171171
static const char* getTypeName(dbObjectType type);
172172
static dbObjectType getType(const char* name, utl::Logger* logger);
173-
// These are not intended for client use as the returned class is
174-
// not exported. They are for internal db convenience.
173+
174+
///
175+
/// These are not intended for client use as the returned class is
176+
/// not exported. They are for internal db convenience.
177+
///
175178
_dbObject* getImpl();
176179
const _dbObject* getImpl() const;
177180

181+
///
182+
/// Returns object name for debugging
183+
/// e.g., "dbITerm(34, 0x555551234b, 'u0/buf/A')"
184+
///
185+
std::string getDebugName() const;
186+
178187
protected:
179188
dbObject() = default;
180189
~dbObject() = default;

src/odb/src/db/dbBTerm.cpp

Lines changed: 63 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,15 @@ void dbBTerm::setSigType(dbSigType type)
267267

268268
bterm->flags_.sig_type = type.getValue();
269269

270+
debugPrint(getImpl()->getLogger(),
271+
utl::ODB,
272+
"DB_EDIT",
273+
2,
274+
"EDIT: {} setSigType {}",
275+
bterm->getDebugName(),
276+
type.getValue());
277+
270278
if (block->journal_) {
271-
debugPrint(getImpl()->getLogger(),
272-
utl::ODB,
273-
"DB_ECO",
274-
1,
275-
"ECO: setSigType {}",
276-
type.getValue());
277279
block->journal_->updateField(
278280
this, _dbBTerm::kFlags, prev_flags, flagsToUInt(bterm));
279281
}
@@ -297,13 +299,15 @@ void dbBTerm::setIoType(dbIoType type)
297299

298300
bterm->flags_.io_type = type.getValue();
299301

302+
debugPrint(getImpl()->getLogger(),
303+
utl::ODB,
304+
"DB_EDIT",
305+
2,
306+
"EDIT: {} setIoType {}",
307+
bterm->getDebugName(),
308+
type.getValue());
309+
300310
if (block->journal_) {
301-
debugPrint(getImpl()->getLogger(),
302-
utl::ODB,
303-
"DB_ECO",
304-
1,
305-
"ECO: setIoType {}",
306-
type.getValue());
307311
block->journal_->updateField(
308312
this, _dbBTerm::kFlags, prev_flags, flagsToUInt(bterm));
309313
}
@@ -615,15 +619,6 @@ dbBTerm* dbBTerm::create(dbNet* net_, const char* name)
615619
}
616620

617621
if (block->journal_) {
618-
debugPrint(block->getImpl()->getLogger(),
619-
utl::ODB,
620-
"DB_ECO",
621-
1,
622-
"ECO: create dbBTerm '{}' on dbNet({}, {:p}) '{}'",
623-
name,
624-
net->getId(),
625-
static_cast<void*>(net),
626-
name);
627622
block->journal_->beginAction(dbJournal::kCreateObject);
628623
block->journal_->pushParam(dbBTermObj);
629624
block->journal_->pushParam(net->getId());
@@ -635,6 +630,14 @@ dbBTerm* dbBTerm::create(dbNet* net_, const char* name)
635630
bterm->name_ = safe_strdup(name);
636631
block->bterm_hash_.insert(bterm);
637632

633+
debugPrint(block->getImpl()->getLogger(),
634+
utl::ODB,
635+
"DB_EDIT",
636+
1,
637+
"EDIT: create {} on {}",
638+
bterm->getDebugName(),
639+
net->getDebugName());
640+
638641
// If there is a parentInst then we need to update the dbMaster's
639642
// mterms, the parent dbInst's iterms, and the dbHier to match
640643
dbBlock* block_public = (dbBlock*) block;
@@ -679,18 +682,15 @@ void _dbBTerm::connectModNet(_dbModNet* mod_net, _dbBlock* block)
679682

680683
mnet_ = mod_net->getOID();
681684

685+
debugPrint(block->getImpl()->getLogger(),
686+
utl::ODB,
687+
"DB_EDIT",
688+
1,
689+
"EDIT: connect {} to {}",
690+
bterm->getDebugName(),
691+
mod_net->getDebugName());
692+
682693
if (block->journal_) {
683-
debugPrint(block->getImpl()->getLogger(),
684-
utl::ODB,
685-
"DB_ECO",
686-
1,
687-
"ECO: connect dbBTerm({} {:p}) '{}' to dbModNet({} {:p}) '{}'",
688-
bterm->getId(),
689-
static_cast<void*>(bterm),
690-
bterm->name_,
691-
mod_net->getId(),
692-
static_cast<void*>(mod_net),
693-
((dbModNet*) mod_net)->getHierarchicalName());
694694
block->journal_->beginAction(dbJournal::kConnectObject);
695695
block->journal_->pushParam(dbBTermObj);
696696
block->journal_->pushParam(bterm->getId());
@@ -716,18 +716,15 @@ void _dbBTerm::connectNet(_dbNet* net, _dbBlock* block)
716716
{
717717
_dbBTerm* bterm = (_dbBTerm*) this;
718718

719+
debugPrint(block->getImpl()->getLogger(),
720+
utl::ODB,
721+
"DB_EDIT",
722+
1,
723+
"EDIT: connect {} to {}",
724+
bterm->getDebugName(),
725+
net->getDebugName());
726+
719727
if (block->journal_) {
720-
debugPrint(block->getImpl()->getLogger(),
721-
utl::ODB,
722-
"DB_ECO",
723-
1,
724-
"ECO: connect dbBTerm({} {:p}) '{}' to dbNet({} {:p}) '{}'",
725-
bterm->getId(),
726-
static_cast<void*>(bterm),
727-
bterm->name_,
728-
net->getId(),
729-
static_cast<void*>(net),
730-
((dbNet*) net)->getName());
731728
block->journal_->beginAction(dbJournal::kConnectObject);
732729
block->journal_->pushParam(dbBTermObj);
733730
block->journal_->pushParam(bterm->getId());
@@ -784,15 +781,14 @@ void dbBTerm::destroy(dbBTerm* bterm_)
784781
callback->inDbBTermDestroy(bterm_);
785782
}
786783

784+
debugPrint(block->getImpl()->getLogger(),
785+
utl::ODB,
786+
"DB_EDIT",
787+
1,
788+
"EDIT: delete {}",
789+
bterm->getDebugName());
790+
787791
if (block->journal_) {
788-
debugPrint(block->getImpl()->getLogger(),
789-
utl::ODB,
790-
"DB_ECO",
791-
1,
792-
"ECO: delete dbBTerm({}, {:p}) '{}'",
793-
bterm->getId(),
794-
static_cast<void*>(bterm),
795-
bterm->name_);
796792
block->journal_->beginAction(dbJournal::kDeleteObject);
797793
block->journal_->pushParam(dbBTermObj);
798794
block->journal_->pushParam(bterm_->getId());
@@ -809,20 +805,16 @@ void _dbBTerm::disconnectNet(_dbBTerm* bterm, _dbBlock* block)
809805
if (bterm->net_) {
810806
_dbNet* net = block->net_tbl_->getPtr(bterm->net_);
811807

808+
debugPrint(block->getImpl()->getLogger(),
809+
utl::ODB,
810+
"DB_EDIT",
811+
1,
812+
"EDIT: disconnect {} from {}",
813+
bterm->getDebugName(),
814+
net->getDebugName());
815+
812816
// Journal
813817
if (block->journal_) {
814-
debugPrint(
815-
block->getImpl()->getLogger(),
816-
utl::ODB,
817-
"DB_ECO",
818-
1,
819-
"ECO: disconnect dbBTerm({} {:p}) '{}' from dbNet({} {:p}) '{}'",
820-
bterm->getId(),
821-
static_cast<void*>(bterm),
822-
bterm->name_,
823-
net->getId(),
824-
static_cast<void*>(net),
825-
net->name_);
826818
block->journal_->beginAction(dbJournal::kDisconnectObject);
827819
block->journal_->pushParam(dbBTermObj);
828820
block->journal_->pushParam(bterm->getId());
@@ -868,19 +860,15 @@ void _dbBTerm::disconnectModNet(_dbBTerm* bterm, _dbBlock* block)
868860
if (bterm->mnet_) {
869861
_dbModNet* mod_net = block->modnet_tbl_->getPtr(bterm->mnet_);
870862

863+
debugPrint(block->getImpl()->getLogger(),
864+
utl::ODB,
865+
"DB_EDIT",
866+
1,
867+
"EDIT: disconnect {} from {}",
868+
bterm->getDebugName(),
869+
mod_net->getDebugName());
870+
871871
if (block->journal_) {
872-
debugPrint(
873-
block->getImpl()->getLogger(),
874-
utl::ODB,
875-
"DB_ECO",
876-
1,
877-
"ECO: disconnect dbBTerm({} {:p}) '{}' from dbModNet({} {:p}) '{}'",
878-
bterm->getId(),
879-
static_cast<void*>(bterm),
880-
bterm->name_,
881-
mod_net->getId(),
882-
static_cast<void*>(mod_net),
883-
((dbModNet*) mod_net)->getHierarchicalName());
884872
block->journal_->beginAction(dbJournal::kDisconnectObject);
885873
block->journal_->pushParam(dbBTermObj);
886874
block->journal_->pushParam(bterm->getId());

src/odb/src/db/dbBlock.cpp

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2779,17 +2779,18 @@ void dbBlock::setCornerCount(int cornersStoredCnt,
27792779

27802780
// TODO: Should this change be logged in the journal?
27812781
// Yes !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2782+
debugPrint(getImpl()->getLogger(),
2783+
utl::ODB,
2784+
"DB_EDIT",
2785+
2,
2786+
"EDIT: dbBlock {}, setCornerCount cornerCnt {}, extDbCnt {}, "
2787+
"name_list {}",
2788+
block->getId(),
2789+
cornersStoredCnt,
2790+
extDbCnt,
2791+
name_list);
2792+
27822793
if (block->journal_) {
2783-
debugPrint(getImpl()->getLogger(),
2784-
utl::ODB,
2785-
"DB_ECO",
2786-
1,
2787-
"ECO: dbBlock {}, setCornerCount cornerCnt {}, extDbCnt {}, "
2788-
"name_list {}",
2789-
block->getId(),
2790-
cornersStoredCnt,
2791-
extDbCnt,
2792-
name_list);
27932794
block->journal_->beginAction(dbJournal::kUpdateField);
27942795
block->journal_->pushParam(dbBlockObj);
27952796
block->journal_->pushParam(block->getId());
@@ -3153,13 +3154,14 @@ void dbBlock::writeDb(char* filename, int allNode)
31533154
return;
31543155
}
31553156
getDataBase()->write(file);
3157+
debugPrint(getImpl()->getLogger(),
3158+
utl::ODB,
3159+
"DB_EDIT",
3160+
2,
3161+
"EDIT: dbBlock {}, writeDb",
3162+
block->getId());
3163+
31563164
if (block->journal_) {
3157-
debugPrint(getImpl()->getLogger(),
3158-
utl::ODB,
3159-
"DB_ECO",
3160-
1,
3161-
"ECO: dbBlock {}, writeDb",
3162-
block->getId());
31633165
block->journal_->beginAction(dbJournal::kUpdateField);
31643166
block->journal_->pushParam(dbBlockObj);
31653167
block->journal_->pushParam(block->getId());

0 commit comments

Comments
 (0)