PUBLIC bool Jdb_tcb_ptr::in_backtrace(Address bt_start, Address tcb) { if (bt_start) { if (!Config::Have_frame_ptr) return Mem_layout::in_kernel_code(value()); Jdb_tcb_ptr ebp(bt_start); for (;;) { Jdb_tcb_ptr eip(ebp.addr()+4); if (!Mem_layout::in_kernel_code(eip.value())) return false; if (ebp.addr()+4 == addr()) return true; if (ebp.addr() == 0 || !Jdb_tcb_ptr(ebp.value()).valid()) return false; ebp = ebp.value(); } } return false; }
void *QueryInputAndChangeObjectName( int Type, void *Ptr1, void *Ptr2, void *Ptr3 ) { int eax; int ecx; int edx; char *name; char msg[513]; if ( Type != 1024 ) { switch ( Type ) { case 2: break; case 4: gui->prompt_for( "Linename:", ((char*)Ptr2)[84] == 0 ? ((char*)Ptr2)[84] : "" ); break; case 1: gui->prompt_for( "Vianame:", ((char*)Ptr2)[60] == 0 ? ((char*)Ptr2)[60] : "" ); break; case 256: __sprintf_chk( msg, 1, 513, "%s Pin Name:", ((char*)Ptr2)[64] == 0 ? &((char*)Ptr2)[64] : "" ); ebp( msg[0], ((char*)Ptr2)[88] == 0 ? ((char*)Ptr2)[88] : "", gui->prompt_for ); break; case 512: __sprintf_chk( msg, 1, 513, "%s Pad Name:", ((char*)Ptr2)[92] == 0 ? &((char*)Ptr2)[92] : "" ); ebp( msg[0], ((char*)Ptr2)[88] == 0 ? ((char*)Ptr2)[88] : "", gui->prompt_for ); break; case 16: gui->prompt_for( "Enter text:", ((char*)Ptr2)[52] == 0 ? ((char*)Ptr2)[52] : "" ); break; default: Ptr3 = 0; if ( 0 ^ 0 ) { __stack_chk_fail( ); } return Ptr3; break; } if ( name == 0 ) continue; else { /* phantom */ char *old; if ( ChangeObjectName( Type, Ptr1, Ptr2, Ptr3, name ) != -1 ) { AddObjectToChangeNameUndoList( Type, Ptr1, Ptr2, Ptr3, (char*)ChangeObjectName( Type, Ptr1, Ptr2, Ptr3, name ) ); IncrementUndoSerialNumber( ); } Draw( ); } } else { Ptr3 = Ptr1; Ptr2 = Ptr1; } if ( ((char*)Ptr2)[88] == 0 ) goto B22; else { } B22:; ebx( "Elementname:", ((char*)Ptr2)[88], PCB->Flags.f & 64, Ptr1 ); Type = 2; }