Versions in this module Expand all Collapse all v0 v0.0.1 Jan 3, 2023 Changes in this version + const CdBroadcast + const CdSignal + const CdWait + const Close + const MaxRecordElem + const MuLock + const MuUnlock + const Recv + const Select + const Send + const TimeTicker + const WgWait + var BoolDebug = gogetenv("ORACLERT_DEBUG") == "1" + var BoolDelayCheck = true + var BoolRecord bool = true + var BoolRecordPerCh bool = gogetenv("BitGlobalTuple") == "0" + var BoolRecordSDK bool = gogetenv("GF_SCORE_SDK") == "1" + var BoolRecordTrad bool = gogetenv("GF_SCORE_TRAD") == "1" + var BoolReportBug = gogetenv("ORACLERT_BENCHMARK") != "1" + var BoolSelectCount bool + var ChCount uint16 + var ChRecord [MaxRecordElem]*ChanRecord + var DumpedAllStack bool = false + var FnCheckCount = func(*uint32) + var FnPointer2String func(interface{}) string + var GlobalEnableOracle = gogetenv("ORACLERT_NOORACLE") != "1" + var GlobalLastLoc uint32 = uint32(12345) + var MapBlockEntry map[*BlockEntry]struct{} = make(map[*BlockEntry]struct{}) + var MapChToChanInfo map[interface{}]PrimInfo + var MapSelectInfo map[string]SelectInfo + var MuBlockEntry mutex + var MuCheckEntry mutex + var MuFirstInput mutex + var MuMapChToChanInfo mutex + var MuReportBug mutex + var MuWithdraw mutex + var PtrCheckCounter *uint32 + var RecordSelectChoice bool = true + var StrWithdraw string + var TupleRecord [MaxRecordElem]uint32 + var Uint32SelectCount uint32 + var VecCheckEntry []*CheckEntry + func AddRefGoroutine(chInfo PrimInfo, goInfo *GoInfo) + func BoolCheckEntryEqual(a, b *CheckEntry) bool + func Breakpoint() + func Byte_to_Uint16(b []byte) uint16 + func Byte_to_Uint32(b []byte) uint32 + func CheckBlockBug(CS []PrimInfo) (finished bool) + func CheckBlockEntry() (strReturn string, foundBug bool) + func CurrentGoAddCh(ch interface{}) + func CurrentGoAddCond(ch interface{}) + func CurrentGoAddMutex(ch interface{}) + func CurrentGoAddWaitgroup(ch interface{}) + func CurrentGoID() int64 + func DequeueBlockEntry(entry *BlockEntry) + func DumpAllStack() + func FormatInt(i int64, base int) string + func GoID() int64 + func Gosched() + func Index(s, substr string) int + func IndexByte(s string, c byte) int + func Itoa(i int) string + func LastIndex(s, substr string) int + func LastIndexByte(s string, c byte) int + func LastMySwitchChoice() int + func LastMySwitchLineNum() string + func LastMySwitchOriSelectNumCase() int + func LinkChToLastChanInfo(ch interface{}) + func LinkCondToLastCondInfo(cond interface{}) + func LinkMuToLastMuInfo(mu interface{}) + func LinkRWMuToLastRWMuInfo(rwmu interface{}) + func LinkWgToLastWgInfo(wg interface{}) + func LockCheckEntry() + func LockOSThread() + func Monitor(prim PrimInfo) + func MyCaller(skip int) string + func PrintCurrentStack() + func ProcessSelectInfo(handler func(map[string]SelectInfo)) + func ReadSelectCount() uint32 + func RecordChMake(capBuf int, c *hchan) + func RecordChOp(c *hchan) + func RecordTradOp(primPreLoc *uint16) + func RemoveRefGoroutine(chInfo PrimInfo, goInfo *GoInfo) + func ReportBug(mapCS map[PrimInfo]struct{}) + func ReportNonBlockingBug() + func SelectCount() + func SetCurrentGoCheckBug() + func SleepMS(numMs int) + func StoreChOpInfo(strOpType string, uint16OpID uint16) + func StoreLastMySwitchChoice(choice int) + func StoreLastMySwitchLineNum(strLine string) + func StoreLastMySwitchSelectNumCase(numCase int) + func StoreLastPrimInfo(chInfo PrimInfo) + func StoreSelectInput(intNumCase, intChosenCase int) + func Uint16_to_Byte(b []byte, v uint16) + func Uint32_to_Byte(b []byte, v uint32) + func UnlockCheckEntry() + func UnlockOSThread() + func XorByte(a, b []byte) []byte + func XorUint16(a, b uint16) uint16 + func XorUint32(a, b uint32) uint32 + type BlockEntry struct + CurrentGoInfo *GoInfo + StrOpPosition string + VecPrim []PrimInfo + func EnqueueBlockEntry(vecPrim []PrimInfo, op string) *BlockEntry + type BlockInfo struct + Prim PrimInfo + StrOp string + type ChanInfo struct + BoolInSDK bool + Chan *hchan + IntBuffer int + IntFlagFoundBug int32 + MapRefGoroutine map[*GoInfo]struct{} + Mu mutex + OKToCheck bool + SpecialFlag int8 + StrDebug string + Uint32Monitor uint32 + func FindChanInfo(ch interface{}) *ChanInfo + func NewChanInfo(ch *hchan) *ChanInfo + func (chInfo *ChanInfo) AddGoroutine(goInfo *GoInfo) + func (chInfo *ChanInfo) LoadMonitor() uint32 + func (chInfo *ChanInfo) Lock() + func (chInfo *ChanInfo) MapRef() map[*GoInfo]struct{} + func (chInfo *ChanInfo) RemoveGoroutine(goInfo *GoInfo) + func (chInfo *ChanInfo) SetMonitor(i uint32) + func (chInfo *ChanInfo) StringDebug() string + func (chInfo *ChanInfo) Unlock() + type ChanRecord struct + CapBuf uint16 + Ch *hchan + Closed bool + NotClosed bool + PeakBuf uint16 + StrCreation string + type CheckEntry struct + CS []PrimInfo + Uint32NeedCheck uint32 + func DequeueCheckEntry() *CheckEntry + func EnqueueCheckEntry(CS []PrimInfo) *CheckEntry + type CondInfo struct + EnableOracle bool + IntFlagFoundBug int32 + MapRefGoroutine map[*GoInfo]struct{} + Mu mutex + StrDebug string + Uint32Monitor uint32 + func FindCondInfo(cond interface{}) *CondInfo + func NewCondInfo() *CondInfo + func (c *CondInfo) LoadMonitor() uint32 + func (c *CondInfo) SetMonitor(i uint32) + func (c *CondInfo) StringDebug() string + func (cond *CondInfo) AddGoroutine(goInfo *GoInfo) + func (cond *CondInfo) Lock() + func (cond *CondInfo) MapRef() map[*GoInfo]struct{} + func (cond *CondInfo) RemoveGoroutine(goInfo *GoInfo) + func (cond *CondInfo) Unlock() + type GoInfo struct + BitCheckBugAtEnd uint32 + G *g + MapPrimeInfo map[PrimInfo]struct{} + Mu mutex + VecBlockInfo []BlockInfo + func CurrentGoInfo() *GoInfo + func NewGoInfo(goroutine *g) *GoInfo + func (goInfo *GoInfo) AddPrime(chInfo PrimInfo) + func (goInfo *GoInfo) IsBlock() (boolIsBlock bool, strOp string) + func (goInfo *GoInfo) IsBlockAtGivenChan(chInfo *ChanInfo) (boolIsBlockAtGiven bool, strOp string) + func (goInfo *GoInfo) RemoveAllRef() + func (goInfo *GoInfo) RemovePrime(chInfo PrimInfo) + func (goInfo *GoInfo) SetBlockAt(prim PrimInfo, strOp string) + func (goInfo *GoInfo) SetCheckBug() + func (goInfo *GoInfo) SetNotCheckBug() + func (goInfo *GoInfo) WithdrawBlock(checkEntry *CheckEntry) + type MuInfo struct + EnableOracle bool + IntFlagFoundBug int32 + MapRefGoroutine map[*GoInfo]struct{} + Mu mutex + StrDebug string + Uint32Monitor uint32 + func FindMuInfo(mu interface{}) *MuInfo + func NewMuInfo() *MuInfo + func (m *MuInfo) LoadMonitor() uint32 + func (m *MuInfo) SetMonitor(i uint32) + func (m *MuInfo) StringDebug() string + func (mu *MuInfo) AddGoroutine(goInfo *GoInfo) + func (mu *MuInfo) Lock() + func (mu *MuInfo) MapRef() map[*GoInfo]struct{} + func (mu *MuInfo) RemoveGoroutine(goInfo *GoInfo) + func (mu *MuInfo) Unlock() + type OpType uint8 + const ChClose + const ChRecv + const ChSelect + const ChSend + type PrimInfo interface + AddGoroutine func(*GoInfo) + LoadMonitor func() uint32 + Lock func() + MapRef func() map[*GoInfo]struct{} + RemoveGoroutine func(*GoInfo) + SetMonitor func(uint32) + StringDebug func() string + Unlock func() + func LoadLastPrimInfo() PrimInfo + type RWMuInfo struct + EnableOracle bool + IntFlagFoundBug int32 + MapRefGoroutine map[*GoInfo]struct{} + Mu mutex + StrDebug string + Uint32Monitor uint32 + func FindRWMuInfo(rwmu interface{}) *RWMuInfo + func NewRWMuInfo() *RWMuInfo + func (m *RWMuInfo) LoadMonitor() uint32 + func (m *RWMuInfo) SetMonitor(i uint32) + func (m *RWMuInfo) StringDebug() string + func (mu *RWMuInfo) AddGoroutine(goInfo *GoInfo) + func (mu *RWMuInfo) Lock() + func (mu *RWMuInfo) MapRef() map[*GoInfo]struct{} + func (mu *RWMuInfo) RemoveGoroutine(goInfo *GoInfo) + func (mu *RWMuInfo) Unlock() + type SelectInfo struct + IntNumCase int + IntPrioCase int + StrFileName string + StrLineNum string + func NewSelectInputFromRuntime(intNumCase, intPrioCase int, intLayerCallee int) SelectInfo + type StackSingleGo struct + CreaterFile string + CreaterLine string + CreaterName string + GoID string + GoStatus string + OnOtherThread bool + VecFuncFile []string + VecFuncLine []string + VecFuncName []string + func ParseStackStr(stackStr string) StackSingleGo + type WgInfo struct + EnableOracle bool + IntFlagFoundBug int32 + MapRefGoroutine map[*GoInfo]struct{} + Mu mutex + StrDebug string + Uint32Monitor uint32 + WgCounter uint32 + func FindWgInfo(wg interface{}) *WgInfo + func NewWgInfo() *WgInfo + func (w *WgInfo) AddGoroutine(goInfo *GoInfo) + func (w *WgInfo) IamBug() + func (w *WgInfo) LoadMonitor() uint32 + func (w *WgInfo) Lock() + func (w *WgInfo) MapRef() map[*GoInfo]struct{} + func (w *WgInfo) RemoveGoroutine(goInfo *GoInfo) + func (w *WgInfo) SetMonitor(i uint32) + func (w *WgInfo) StringDebug() string + func (w *WgInfo) Unlock()