MCPcopy Create free account

hub / github.com/CodeSentryAI/lockbud / functions

Functions324 in github.com/CodeSentryAI/lockbud

↓ 46 callersMethodinsert
(&mut self, lockguard_id: LockGuardId)
src/detector/lock/mod.rs:36
↓ 18 callersMethodget_or_insert_node
(&mut self, node: ConstraintNode<'tcx>)
src/analysis/pointsto/mod.rs:206
↓ 14 callersMethodindex_to_instance
Get the instance by InstanceId.
src/analysis/callgraph/mod.rs:90
↓ 13 callersMethodadd_edge
(&mut self, a: RelationId, b: RelationId, weight: DeadlockPossibility)
src/detector/lock/mod.rs:872
↓ 13 callersMethodwait
(&self)
toys/condvar-struct/src/main.rs:19
↓ 12 callersMethodinstance
(&self)
src/analysis/callgraph/mod.rs:53
↓ 10 callersMethodalias
Check if two memory cells alias with each other. If they are from the same func, then perform intraproc alias analysis; otherwise, perform interproc a
src/analysis/pointsto/mod.rs:726
↓ 9 callersMethoddetect
Detect deadlock inter-procedurally and returns bug report.
src/detector/lock/mod.rs:115
↓ 8 callersMethodnext
(&mut self)
src/analysis/postdom/mod.rs:291
↓ 8 callersMethodnode_weight
(&self, a: RelationId)
src/detector/lock/mod.rs:876
↓ 7 callersMethodget_or_insert_pts
Get the points-to info from cache `pts`. If not exists, then perform points-to analysis and add the obtained points-to info to cache.
src/analysis/pointsto/mod.rs:853
↓ 7 callersMethodpost_dominators
(&self, node: Node)
src/analysis/postdom/mod.rs:249
↓ 7 callersMethodunion_in_place
self = self U other, if changed return true
src/detector/lock/mod.rs:51
↓ 6 callersFunctiongen_rand_val_i32
()
toys/atomic-violation/src/main.rs:8
↓ 6 callersMethodget_node
(&self, node: &ConstraintNode<'tcx>)
src/analysis/pointsto/mod.rs:216
↓ 6 callersMethodload
(&self, ord: Ordering)
toys/use-after-free/src/main.rs:42
↓ 6 callersMethodnotify
(&self)
toys/condvar-struct/src/main.rs:27
↓ 6 callersMethodraw_lockguard_ids
(&self)
src/detector/lock/mod.rs:39
↓ 6 callersMethodstore
(&self, owned: Option<Owned<T>>, ord: Ordering)
toys/use-after-free/src/main.rs:45
↓ 6 callersMethodsuccessors
(&self, node: Self::Node)
src/analysis/postdom/tests.rs:71
↓ 5 callersMethodadd_copy
(&mut self, lhs: PlaceRef<'tcx>, rhs: PlaceRef<'tcx>)
src/analysis/pointsto/mod.rs:247
↓ 5 callersMethodcallsites
Find the callsites (weight) on the edge from source to target.
src/analysis/callgraph/mod.rs:135
↓ 5 callersFunctioncontrol_deps
(graph: G)
src/analysis/controldep/mod.rs:47
↓ 5 callersMethodlocation
(&self)
src/analysis/callgraph/mod.rs:36
↓ 5 callersMethodmonomorphize
(&self, instance: &Instance<'tcx>, ty: Ty<'tcx>)
src/detector/memory/invalid_free.rs:263
↓ 4 callersMethodadd_node
(&mut self, relation: (LockGuardId, LockGuardId))
src/detector/lock/mod.rs:868
↓ 4 callersMethodcallers
Find all the callers that call target
src/analysis/callgraph/mod.rs:145
↓ 4 callersFunctiondeadlock_possibility
Check deadlock possibility. for two lockguards, first check if their types may deadlock; if so, then check if they may alias.
src/detector/lock/mod.rs:676
↓ 4 callersFunctiondest_args0
Find dest and the first arg of a Call
src/detector/memory/mod.rs:20
↓ 4 callersFunctionhas_arg_flag
Determines whether a `--flag` is present.
src/bin/cargo-lockbud.rs:43
↓ 4 callersMethodnum_nodes
(&self)
src/analysis/postdom/tests.rs:40
↓ 4 callersFunctionpost_dominators
(graph: G)
src/analysis/postdom/mod.rs:61
↓ 4 callersFunctionreport_stats
(crate_name: &str, reports: &[Report])
src/callbacks.rs:214
↓ 4 callersFunctionuninit
()
toys/invalid-free/src/main.rs:4
↓ 3 callersMethodanalyze
(&mut self)
src/analysis/pointsto/mod.rs:66
↓ 3 callersFunctioncallsite_locations
CallSite Locations from source to target
src/detector/atomic/mod.rs:283
↓ 3 callersMethodinsert_edge
if edge `from--|weight|-->to` not exists, then add the edge and return true
src/analysis/pointsto/mod.rs:386
↓ 3 callersMethodintraproc_alias
Check alias of p1 and p2 if they are from the same fn. if pts(p1) intersect pts(p2) != empty then they probably alias else unlikely
src/analysis/pointsto/mod.rs:866
↓ 3 callersFunctionis_parameter
(local: Local, body: &Body<'_>)
src/analysis/pointsto/mod.rs:1086
↓ 3 callersMethodparking_lot_rwlock_read_2
(&self)
toys/inter/src/main.rs:83
↓ 3 callersMethodparking_lot_rwlock_write_2
(&self)
toys/inter/src/main.rs:87
↓ 3 callersFunctionpostdom_post_order_from
( graph: &G, end_nodes: Vec<G::Node>, )
src/analysis/postdom/mod.rs:76
↓ 3 callersMethodprocess_call_arg_dest
dest: *const T = Vec::as_ptr(arg: &Vec<T>) => arg--|copy|-->dest
src/analysis/pointsto/mod.rs:534
↓ 3 callersMethodspin_rwlock_read_2
(&self)
toys/inter/src/main.rs:120
↓ 3 callersMethodspin_rwlock_write_2
(&self)
toys/inter/src/main.rs:124
↓ 2 callersMethodadd_load
(&mut self, lhs: PlaceRef<'tcx>, rhs: PlaceRef<'tcx>)
src/analysis/pointsto/mod.rs:263
↓ 2 callersMethodclosure_defsite_upvars
Suppose _1 is the closure parameter and _9 is the arg in the def fn. For upvar _1.0 in the closure, we get _9.0 in the def fn. Though PointsToPath ena
src/analysis/pointsto/mod.rs:1034
↓ 2 callersFunctioncollect_manual_drop
std::mem::drop(place);
src/detector/memory/mod.rs:37
↓ 2 callersFunctiondiagnose_condvar_deadlock
( callsite1: (InstanceId, Location), callsite2: (InstanceId, Location), is_std_condvar: bool,
src/detector/lock/mod.rs:792
↓ 2 callersFunctiondiagnose_one_relation
Find the diagnosis info for relation(a, b), including a's ty & span, b's ty & span, and callchains.
src/detector/lock/mod.rs:765
↓ 2 callersMethodend_nodes
(&self)
src/analysis/postdom/mod.rs:31
↓ 2 callersFunctionfind_uses
(body: &Body<'_>, local: Local)
src/analysis/defuse/mod.rs:92
↓ 2 callersMethodfinish
(self)
src/analysis/pointsto/mod.rs:141
↓ 2 callersMethodfinish
(self)
src/detector/memory/mod.rs:91
↓ 2 callersMethodimmediate_dep
(&self, local: Local)
src/analysis/datadep/mod.rs:51
↓ 2 callersMethodinstance_to_index
Search for the InstanceId of a given instance in CallGraph.
src/analysis/callgraph/mod.rs:82
↓ 2 callersMethodinterproc_alias
Check alias of p1 and p2 if they are from different fn. To avoid interproc analysis, we use heuristic assumption: p1 and p2 alias if: 1. they point to
src/analysis/pointsto/mod.rs:939
↓ 2 callersMethodintraproc_points_to
Check if `pointer` points-to `pointee` in the same function.
src/analysis/pointsto/mod.rs:887
↓ 2 callersMethodis_gen_only_by_move
(&self)
src/interest/concurrency/lock.rs:206
↓ 2 callersMethodis_post_dominated_by
(&self, node: Node, dom: Node)
src/analysis/postdom/mod.rs:257
↓ 2 callersMethodnodes
(&self)
src/analysis/pointsto/mod.rs:295
↓ 2 callersMethodnum_nodes
(&self)
src/analysis/controldep/tests.rs:40
↓ 2 callersMethodparking_lot_mutex_2
(&self)
toys/inter/src/main.rs:65
↓ 2 callersFunctionpoints_to_paths_to_param
Find the points-to paths from the given node to the closure parameters (upvar). A points-to path is like [([], node), ([Field(0)], node1), ([Filed(1)]
src/analysis/pointsto/mod.rs:1158
↓ 2 callersMethodrecur
(&self)
toys/inter/src/main.rs:98
↓ 2 callersMethodspin_mutex_1
(&self)
toys/inter/src/main.rs:91
↓ 2 callersMethodspin_mutex_2
(&self)
toys/inter/src/main.rs:102
↓ 2 callersMethodstart_node
(&self)
src/analysis/controldep/tests.rs:46
↓ 2 callersMethodstd_mutex_2
(&self)
toys/inter/src/main.rs:32
↓ 2 callersMethodstd_rwlock_read_2
(&self)
toys/inter/src/main.rs:50
↓ 2 callersMethodstd_rwlock_write_2
(&self)
toys/inter/src/main.rs:54
↓ 2 callersMethodsuccessors
(&self, node: Self::Node)
src/analysis/controldep/tests.rs:71
↓ 1 callersMethodadd_address
(&mut self, lhs: PlaceRef<'tcx>, rhs: PlaceRef<'tcx>)
src/analysis/pointsto/mod.rs:239
↓ 1 callersMethodadd_alias_copy
(&mut self, lhs: PlaceRef<'tcx>, rhs: PlaceRef<'tcx>)
src/analysis/pointsto/mod.rs:287
↓ 1 callersMethodadd_alloc
(&mut self, place: PlaceRef<'tcx>)
src/analysis/pointsto/mod.rs:220
↓ 1 callersMethodadd_constant
(&mut self, constant: Const<'tcx>)
src/analysis/pointsto/mod.rs:228
↓ 1 callersMethodadd_copy_constant
(&mut self, lhs: PlaceRef<'tcx>, rhs: Const<'tcx>)
src/analysis/pointsto/mod.rs:255
↓ 1 callersMethodadd_partial_copy
forall (p1, p2) where p1 is prefix of p1, add `p1 = p2`. e.g. Place1{local1, &[f0]}, Place2{local1, &[f0,f1]}, since they have the same local and Plac
src/analysis/pointsto/mod.rs:551
↓ 1 callersMethodadd_store
(&mut self, lhs: PlaceRef<'tcx>, rhs: PlaceRef<'tcx>)
src/analysis/pointsto/mod.rs:271
↓ 1 callersMethodadd_store_constant
(&mut self, lhs: PlaceRef<'tcx>, rhs: Const<'tcx>)
src/analysis/pointsto/mod.rs:279
↓ 1 callersMethodalias_copy_targets
X = Arc::clone(rhs) or X = ptr::read(rhs) ? = &X rhs--|alias_copy|-->X, X--|address|-->?
src/analysis/pointsto/mod.rs:357
↓ 1 callersFunctionall_data_dep_on
(a: Local, data_deps: &DataDeps)
src/analysis/datadep/mod.rs:22
↓ 1 callersMethodall_simple_paths
Find all simple paths from source to target. e.g., for one of the paths, `source --> instance1 --> instance2 --> target`, the return is [source, insta
src/analysis/callgraph/mod.rs:152
↓ 1 callersMethodanalyze_with_lockbud
(&mut self, _compiler: &interface::Compiler, tcx: TyCtxt<'tcx>)
src/callbacks.rs:90
↓ 1 callersFunctionassert_panic
()
toys/panic/src/main.rs:5
↓ 1 callersFunctionassume
()
toys/invalid-free/src/main.rs:35
↓ 1 callersFunctionassume_ptr_write_fp
()
toys/invalid-free/src/main.rs:19
↓ 1 callersFunctionassume_write_fp
()
toys/invalid-free/src/main.rs:11
↓ 1 callersFunctionatomic_uses_influences
Returns the uses locations of `influencer` that may data or control influence `influencee` For
src/detector/atomic/mod.rs:223
↓ 1 callersMethodback_edges
Find all the back-edges in the graph.
src/detector/lock/mod.rs:881
↓ 1 callersMethodbar
(&self)
toys/tikv-wrapper/src/main.rs:23
↓ 1 callersFunctionbuggy_both_dep_i32
()
toys/atomic-violation/src/main.rs:40
↓ 1 callersFunctionbuggy_control_dep_bool
()
toys/atomic-violation/src/main.rs:12
↓ 1 callersFunctionbuggy_control_dep_i32
()
toys/atomic-violation/src/main.rs:20
↓ 1 callersFunctionbuggy_data_dep_i32
()
toys/atomic-violation/src/main.rs:31
↓ 1 callersFunctioncargo
()
src/bin/cargo-lockbud.rs:38
↓ 1 callersFunctioncategorize
(context: PlaceContext)
src/analysis/defuse/mod.rs:21
↓ 1 callersFunctionclosure_defsite_args
Closure's defsites and the corresponding args
src/analysis/pointsto/mod.rs:1119
↓ 1 callersMethodcollect_atomics
Collect atomic APIs. Rerturn the atomic API's InstanceId and kind.
src/detector/atomic/mod.rs:45
↓ 1 callersMethodcollect_caller_callsites
collect CallerId X (CallSiteLocation X UninitApi X Callee).
src/detector/memory/invalid_free.rs:83
next →1–100 of 324, ranked by callers