Lines Matching refs:object
2 The object-lifetime debugging infrastructure
21 debugobjects is not changing the data structure of the real object so it
29 object type and add calls into the debug code at appropriate places. The
30 data structure to describe the object type needs at minimum the name of
31 the object type. Optional functions can and should be provided to fixup
53 Each of these functions takes the address of the real object and a
54 pointer to the object type specific debug description structure.
71 object is called.
73 When the real object is already tracked by debugobjects it is checked,
74 whether the object can be initialized. Initializing is not allowed for
76 it calls the fixup_init function of the object type description
78 problem before the real initialization of the object happens. E.g. it
79 can deactivate an active object in order to prevent damage to the
82 When the real object is not yet tracked by debugobjects, debugobjects
83 allocates a tracker object for the real object and sets the tracker
84 object state to ODEBUG_STATE_INIT. It verifies that the object is not
88 object before leaving the function which allocated it. See next section.
94 object which resides on the stack is called.
96 When the real object is already tracked by debugobjects it is checked,
97 whether the object can be initialized. Initializing is not allowed for
99 it calls the fixup_init function of the object type description
101 problem before the real initialization of the object happens. E.g. it
102 can deactivate an active object in order to prevent damage to the
105 When the real object is not yet tracked by debugobjects debugobjects
106 allocates a tracker object for the real object and sets the tracker
107 object state to ODEBUG_STATE_INIT. It verifies that the object is on
110 An object which is on the stack must be removed from the tracker by
112 object returns. Otherwise we keep track of stale objects.
118 object is called.
120 When the real object is already tracked by debugobjects it is checked,
121 whether the object can be activated. Activating is not allowed for
123 it calls the fixup_activate function of the object type description
125 problem before the real activation of the object happens. E.g. it can
126 deactivate an active object in order to prevent damage to the subsystem.
128 When the real object is not yet tracked by debugobjects then the
131 objects. The fixup function checks whether the object is valid and calls
133 object.
136 tracker object is set to ODEBUG_STATE_ACTIVE.
143 object is called.
145 When the real object is tracked by debugobjects it is checked, whether
146 the object can be deactivated. Deactivating is not allowed for untracked
150 tracker object is set to ODEBUG_STATE_INACTIVE.
155 This function is called to mark an object destroyed. This is useful to
160 When the real object is tracked by debugobjects it is checked, whether
161 the object can be destroyed. Destruction is not allowed for active and
163 fixup_destroy function of the object type description structure if
165 before the real destruction of the object happens. E.g. it can
166 deactivate an active object in order to prevent damage to the subsystem.
169 tracker object is set to ODEBUG_STATE_DESTROYED.
174 This function is called before an object is freed.
176 When the real object is tracked by debugobjects it is checked, whether
177 the object can be freed. Free is not allowed for active objects. When
179 the object type description structure if provided by the caller. The
181 object happens. E.g. it can deactivate an active object in order to
184 Note that debug_object_free removes the object from the tracker. Later
185 usage of the object is detected by the other debug checks.
191 This function is called to assert that an object has been initialized.
193 When the real object is not tracked by debugobjects, it calls
194 fixup_assert_init of the object type description structure provided by
195 the caller, with the hardcoded object state ODEBUG_NOT_AVAILABLE. The
199 When the real object is already tracked by debugobjects it is ignored.
204 Debug object type description structure
215 object and the state which is currently recorded in the tracker.
217 Called from debug_object_init when the object state is:
234 Called from debug_object_activate when the object state is:
248 debug_object_activate() has no tracked object for this object address
249 then fixup_activate() is called with object state
251 this is a legitimate case of a statically initialized object or not. In
253 to make the object known to the tracker and marked active. In this case
262 Called from debug_object_destroy when the object state is:
274 checks in kfree/vfree, when an active object is detected from the
278 the object state is:
292 ODEBUG_STATE_NOTAVAILABLE when the object is not found in the debug
303 initialized object or not. In this case only debug_object_init()
304 should be called to make the object known to the tracker. Then the