blob: 6303471c1bbca89c1a20b60541c544b904609f65 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001debug_info()
2============
3
4DEPRECATED
5----------
6::
7
8SYNOPSIS
9--------
10::
11
12 #include <debug_info.h>
13
14 mixed debug_info(int flag)
15 mixed debug_info(int flag, mixed arg)
16 mixed debug_info(int flag, mixed arg2, mixed arg3)
17
18BESCHREIBUNG
19------------
20::
21
22 Sammelt entsprechend den Angaben in <flag> gewisse intere Debuginfos
23 des Treibers. <flag> kann dabei folgende in debug_info.h definierte
24 Werte enthalten:
25
26 DINFO_OBJECT (0): Angezeigt werden Informationen zum in <arg>
27 spezifizierten Objekt, zum Beispiel heart_beat,
28 enable_commands etc. Die Funktion liefert 0 zurueck.
29
30 DINFO_MEMORY (1): Angezeigt werden Informationen zu
31 Speicherbelegung und -ausnutzung des in <arg> spezifizierten
32 Objekts, zum Beispiel Anzahl Strings, Variablen, geerbte Files,
33 Objektgroesse etc. Die Funktion liefert 0 zurueck.
34
35 DINFO_OBJLIST (2): debug_info() liefert Objekte aus der globalen
36 Objektliste. Wenn <arg2> nicht angegeben wird, wird das erste
37 Element aus der Objektliste gelierfert, wenn <arg2> eine Zahl n
38 ist, das n-te Element. Ist <arg2> ein Objekt, werden die
39 nachfolgenden Objekte in der Objektliste zurueck geliefert.
40 Das optionale Argument <arg3> bezeichnet die Anzahl zurueck
41 gelieferter Objekte. Wenn <arg3> 0 ist, wird ein einzelnes
42 Objekt zurueck geliefert. Wenn <arg3> eine Zahl m enthaelt, wird
43 ein Array mit hoechstens m Elementen zurueck geliefert. Auf
44 diese Weise kann ein Array mit saemtlichen Objekten im Spiel
45 erzeugt werden, wenn fuer <arg3> __INT_MAX__ gesetzt wird (eine
46 entsprechende maximale Arraygroesse vorausgesetzt).
47
48 DINFO_MALLOC (3): Entsprichend der Eingabe des 'malloc'-Kommandos.
49 Es muessen keine weiteren Argumente angegeben werden.
50
51 DINFO_STATUS (4): Angezeigt wird die Statusinformation des Drivers.
52 Optional kann das Argument <arg> die Werte 0, "tables", "swap",
53 "malloc" oder andere vom Driver akzeptierte Argumente enthalten.
54 Das Resultat ist ein druckbarer String, der die Statusinformation
55 enthaelt, oder 0, wenn ein ungueltiges Argument angegeben wurde.
56
57 DINFO_DUMP (5): Die durch <arg2> angeforderte Information wird
58 in ein File geschrieben, das man mit <arg3> angeben kann. Wird
59 <arg3> nicht angegeben, wird eine Standarddatei verwendet.
60 debug_info() ueberprueft mittels master->valid_write(), ob es
61 das File schreiben kann. Falls bereits eine entsprechende Datei
62 existiert, wird diese ueberschrieben. Die Funktion liefert 1
63 bei Erfolg, 0 sonst.
64
65 <arg2> == "objects": liefert Informationen ueber alle Objekte im
66 Spiel und schreibt diese standardmaessig in die Datei
67 /OBJ_DUMP, dem valid_write() wird 'objdump' uebergeben.
68 Die Datei enthaelt fuer jedes Objekt eine Zeile, in der
69 jeweils folgende Informationen aufgelistet sind:
70 - Name des Objekts (object_name)
71 - Groesse im Speicher, gemeinsamer genutzter Speicher nur
72 einmal gezaehlt
73 - Groesse im Speicher, wenn es keine gemeinsam genutzte
74 Daten geben wuerde
75 - Anzahl Referenzen
76 - 'HB', wenn das Objekt einen heart_beat hat, sonst nichts.
77 - der Name der Umgebung oder '--', wenn das Objekt keine
78 Umgebung hat
79 - in Klammern die Anzahl der durch das Objekt verursachten
80 Verarbeitungsschritten (execution ticks)
81 - der Swap-Status:
82 > nichts, wenn das Objekt nicht geswapt wurde
83 > 'PROG SWAPPED', wenn nur das Programm geswapt wurde
84 > 'VAR SWAPPED', wenn nur die Variablen geswapt wurden
85 > 'SWAPPED', wenn beide geswapt wurden
86 - die Zeit, zu der das Objekt geladen wurde.
87
88 <arg2> == "destructed": liefert Informationen ueber alle
89 zerstoerten Objekte und schreibt diese standardmaessig in
90 die Datei /DEST_OBJ_DUMP, dem valid_write() wird 'objdump'
91 uebergeben. Die Datei enthaelt fuer jedes Objekt eine Zeile,
92 in der jeweils folgende Informationen aufgelistet sind:
93 - Name des Objekts (object_name)
94 - Anzahl der Referenzen
95 - 'NEW', wenn das Objekt in diesem Verarbeitungszyklus
96 zerstoert wurde, nichts wenn es bereits fruehre zerstoert
97 worden war.
98
99 <arg2> == "opcodes": liefert Nutzungsinformationen ueber die
100 opcodes. Standardmaessig wird in die Datei /OPC_DUMP
101 geschrieben. valid_write() wird 'opcdump' uebergeben.
102
103 <arg2> == "memory": liefert eine Liste aller allokierten
104 Speicherbloecke.
105 Standardmaessig wird in die Datei /MEMORY_DUMP geschrieben;
106 valid_write() wird 'memdump' uebergeben. Existiert die
107 Datei bereits, werden die neuen Daten angehaengt.
108 Wenn der Allokator einen Speicherabzug nicht unterstuetzt,
109 wird keine Datei geschrieben und immer 0 zurueckgegeben.
110 Diese Funktion ist am nuetzlichsten wenn der Allokator
111 mit MALLOC_TRACE und MALLOC_LPC_TRACE kompiliert
112 wurde.
113
114
115 DINFO_DATA (6): Liefert Rohdaten ueber gewisse, durch <arg2>
116 spezifizierte Aspekte des Treibers. Das Resultat der Funktion ist
117 ein Array mit der Information oder 0, falls <arg2> keinen
118 gueltigen Wert enthalten hat.
119 Ist <arg3> eine Zahl, die kleiner ist als die Anzahl Elemente im
120 Resultat-Array, liefert die Funktion nur das entsprechende
121 Element zurueck.
122 Zulaessige Werte fuer <arg2> sind: DID_STATUS, DID_SWAP und
123 DID_MALLOC.
124
125 <arg2> == DID_STATUS (0): Liefert die "status" und "status table"
126 Information. Folgende Indizes sind definiert:
127 - int DID_ST_BOOT_TIME
128 die Zeit (time()), zu der das Mud gestartet wurde
129 - int DID_ST_ACTIONS
130 - int DID_ST_ACTIONS_SIZE
131 die Anzahl und Groesse im Speicher der allozierten
132 Actions.
133 - int DID_ST_SHADOWS
134 - int DID_ST_SHADOWS_SIZE
135 Anzahl und Groesse im Speicher aller allozierten
136 Shadows.
137 - int DID_ST_OBJECTS
138 - int DID_ST_OBJECTS_SIZE
139 Anzahl und Groesse im Speicher aller Objekte.
140 - int DID_ST_OBJECTS_SWAPPED
141 - int DID_ST_OBJECTS_SWAP_SIZE
142 Anzahl und Groesse im Speicher der geswapten
143 Variablenbloecke der Objekte
144 - int DID_ST_OBJECTS_LIST
145 Anzahl Objekte in der Objektliste
146 - int DID_ST_OBJECTS_NEWLY_DEST
147 Anzahl der frisch zerstoerten Objekte (d.h. Objekte,
148 die in diesem Verarbeitungszyklus zerstoert wurden)
149 - int DID_ST_OBJECTS_DESTRUCTED
150 Anzahl der zerstoerten, aber noch immer referenzierten
151 Objekte, ohne die unter DID_ST_OBJECTS_NEWLY_DEST
152 bereits gezaehlten.
153 - int DID_ST_OBJECTS_PROCESSED
154 Anzahl der gelisteten Objekte, die im letzten
155 Verarbeitungszyklus verarbeitet wurden.
156 - float DID_ST_OBJECTS_AVG_PROC
157 Durchschnittlicher Anteil der pro Zyklus verarbeiteten
158 Objekte, ausgedrueckt in Prozent (0 .. 1.0)
159 - int DID_ST_OTABLE
160 Anzahl eingetragener Objekte in der Objekttabelle
161 - int DID_ST_OTABLE_SLOTS
162 Anzahl von Hashplaetzen, die von jeder Objekttabelle
163 bereitgestellt werden
164 - int DID_ST_OTABLE_SIZE
165 Durch die Objekttabelle belegter Speicher
166 - int DID_ST_HBEAT_OBJS
167 Anzahl Objekte mit einem heart_beat()
168 - int DID_ST_HBEAT_CALLS
169 Anzahl aktiver heart_beat() Zyklen bisher (d.h.
170 Zyklen, in denen mindestens eine heart_beat() Funktion
171 aufgerufen wurde)
172 - int DID_ST_HBEAT_CALLS_TOTAL
173 Gesamtzahl von heart_beat() Zyklen bisher.
174 - int DID_ST_HBEAT_SLOTS
175 - int DID_ST_HBEAT_SIZE
176 Anzahl und Groesse aller allozierten Eintraege in der
177 heart_beat() Tabelle.
178 - int DID_ST_HBEAT_PROCESSED
179 Anzahl heart_beat()s im letzten Zyklus
180 - float DID_ST_HBEAT_AVG_PROC
181 Durchschnittlicher Anteil der pro Zyklus aufgerufenen
182 heart_beat()s, ausgedrueckt in Prozent (0 .. 1.0)
183 - int DID_ST_CALLOUTS
184 Anzahl und Groesse aller laufenden call_out()s
185 - int DID_ST_ARRAYS
186 - int DID_ST_ARRAYS_SIZE
187 Anzahl und Groesse aller Arrays
188 - int DID_ST_MAPPINGS
189 - int DID_ST_MAPPINGS_SIZE
190 Anzahl und Groesse aller Mappings
191 - int DID_ST_PROGS
192 - int DID_ST_PROGS_SIZE
193 Anzahl und Groesse aller Programme
194 - int DID_ST_PROGS_SWAPPED
195 - int DID_ST_PROGS_SWAP_SIZE
196 Anzahl und Groesse der geswapten Programme
197 - int DID_ST_USER_RESERVE
198 - int DID_ST_MASTER_RESERVE
199 - int DID_ST_SYSTEM_RESERVE
200 Momentane Groesse der drei Speicherreserven
201 - int DID_ST_ADD_MESSAGE
202 - int DID_ST_PACKETS
203 - int DID_ST_PACKET_SIZE
204 Anzahl Aufrufe von add_message(), Anzahl und Groesse
205 der versendeten Pakete.
206 Wenn der Driver nicht mit COMM_STAT kompiliert wurde,
207 liefern alle drei Werte immer -1 zurueck.
208 - int DID_ST_APPLY
209 - int DID_ST_APPLY_HITS
210 Anzahl Aufrufen von apply_low(), und wie viele davon
211 Cache-Treffer waren. Wenn der Driver nicht mit
212 APPLY_CACHE_STAT kompiliert wurde, liefern beide
213 Werte immer -1.
214 - int DID_ST_STRINGS
215 - int DID_ST_STRING_SIZE
216 Anzahl unterschiedlicher Strings in der Stringtabelle,
217 sowie ihre Groesse
218 - int DID_ST_STR_TABLE_SIZE
219 Groesse der String Tabelle
220 - int DID_ST_STR_REQ
221 - int DID_ST_STR_REQ_SIZE
222 Gesamte Anzahl von String Allokationen, und ihre
223 Groesse
224 - int DID_ST_STR_SEARCHES
225 - int DID_ST_STR_SEARCH_LEN
226 Anzahl Suchvorgaenge in der Stringtabelle und die
227 Gesamtlaenge des Suchstrings
228 - int DID_ST_STR_FOUND
229 Anzahl erfolgreicher Suchvorgaenge
230 - int DID_ST_STR_ENTRIES
231 Anzahl Eintraege (Hash Ketten) in der String Tabelle
232 - int DID_ST_STR_ADDED
233 Anzahl zur String Tabelle bisher hinzugefuegter
234 Strings
235 - int DID_ST_STR_DELETED
236 Anzahl aus der String Tabelle bisher geloeschter
237 Strings
238 - int DID_ST_STR_COLLISIONS
239 Anzahl zu einer existierenden Hash Kette hinzugefuegte
240 Strings
241 - int DID_ST_RX_CACHED
242 Anzahl gecacheter regulaerer Ausdruecke (regular
243 expressions)
244 - int DID_ST_RX_TABLE
245 - int DID_ST_RX_TABLE_SIZE
246 Anzahl Plaetze in der Regexp Cache Tabelle und
247 Speicherbedarf der gecacheten Ausdruecke
248 - int DID_ST_RX_REQUESTS
249 Anzahl Anfragen fuer neue regexps
250 - int DID_ST_RX_REQ_FOUND
251 Anzahl gefundener regexps in der regexp Cache Tabelle
252 - int DID_ST_RX_REQ_COLL
253 Anzahl angefragter regexps, die mit einer bestehenden
254 regexp kollidierten
255 - int DID_ST_MB_FILE
256 Die Groesse des 'File' Speicherpuffers
257 - int DID_ST_MB_SWAP
258 Die Groesse des 'Swap' Speicherpuffers
259
260 <arg2> == DID_SWAP (1): Liefert "status swap"-Information:
261 - int DID_SW_PROGS
262 - int DID_SW_PROG_SIZE
263 Anzahl und Groesse der geswappten Programmbloecke
264 - int DID_SW_PROG_UNSWAPPED
265 - int DID_SW_PROG_U_SIZE
266 Anzahl und Groesse der nicht geswappten Bloecke
267 - int DID_SW_VARS
268 - int DID_SW_VAR_SIZE
269 Anzahl und Groesse der geswappten Variablenbloecke
270 - int DID_SW_FREE
271 - int DID_SW_FREE_SIZE
272 Anzahl und Groesse der freien Bloecke in der
273 Auslagerungsdatei
274 - int DID_SW_FILE_SIZE
275 Groesse der Auslagerungsdatei
276 - int DID_SW_REUSED
277 Gesamter wiederverwendeter Speicherplatz in der
278 Auslagerungsdatei
279 - int DID_SW_SEARCHES
280 - int DID_SW_SEARCH_LEN
281 Anzahl und Gesamtlaenge der Suchvorgaenge nach
282 wiederverwendbaren Bloecken in der Auslagerungsdatei
283 - int DID_SW_F_SEARCHES
284 - int DID_SW_F_SEARCH_LEN
285 Anzahl und Gesamtlaenge der Suchvorgaenge nach einem
286 Block, der frei gemacht werden kann.
287 - int DID_SW_COMPACT
288 TRUE wenn der Swapper im Compact-Modus laeuft
289 - int DID_SW_RECYCLE_FREE
290 TRUE wenn der Swapper gerade einen freien Block
291 wiederverwendet
292
293 <arg2> == DID_MEMORY (2): Liefert die "status malloc"-Information:
294 - string DID_MEM_NAME
295 Der Name des Allokators: "sysmalloc", "smalloc",
296 "slaballoc"
297 - int DID_MEM_SBRK
298 - int DID_MEM_SBRK_SIZE
299 Anzahl und Groesse der Speicherbloecke, die vom
300 Betriebssystem angefordert wurden (smalloc, slaballoc)
301 - int DID_MEM_LARGE
302 - int DID_MEM_LARGE_SIZE
303 - int DID_MEM_LFREE
304 - int DID_MEM_LFREE_SIZE
305 Anzahl und Groesse der grossen allozierten bzw.
306 freien Bloecke (smalloc, slaballoc)
307 - int DID_MEM_LWASTED
308 - int DID_MEM_LWASTED_SIZE
309 Anzahl und Groesse der unbrauchbaren grossen
310 Speicherfragmente (smalloc, slaballoc)
311 - int DID_MEM_CHUNK
312 - int DID_MEM_CHUNK_SIZE
313 Anzahl und Groesse kleiner Speicherbloecke (chunk
314 blocks; smalloc, slaballoc)
315 - int DID_MEM_SMALL
316 - int DID_MEM_SMALL_SIZE
317 - int DID_MEM_SFREE
318 - int DID_MEM_SFREE_SIZE
319 Anzahl und groesse der allozierten bzw. freien
320 kleinen Speicherbloecke (smalloc, slaballoc)
321 - int DID_MEM_SWASTED
322 - int DID_MEM_SWASTED_SIZE
323 Anzahl und Groesse der unbrauchbar kleinen
324 Speicherfragmente (smalloc, slaballoc)
325 - int DID_MEM_MINC_CALLS
326 - int DID_MEM_MINC_SUCCESS
327 - int DID_MEM_MINC_SIZE
328 Anzahl Aufrufe von malloc_increment(), Anzahl der
329 erfolgreichen Aufrufe und die Groesse des auf diese
330 Art allozierten Speichers (smalloc, slaballoc)
331 - int DID_MEM_PERM
332 - int DID_MEM_PERM_SIZE
333 Anzahl und Groesse permanenter (non-GCable)
334 Allokationen (smalloc, slaballoc)
335 - int DID_MEM_CLIB
336 - int DID_MEM_CLIB_SIZE
337 Anzahl und Groesse der Allokationen durch Clib
338 Funktionen (nur smalloc, slaballoc mit SBRK_OK)
339 - int DID_MEM_OVERHEAD
340 Overhead fuer jede Allokation (smalloc, slaballoc)
341 - int DID_MEM_ALLOCATED
342 Der Speicher, der durch die Speicherverwaltung
343 alloziert wurde, inklusive den Overhead fuer die
344 Speicherverwaltung (smalloc, slaballoc)
345 - int DID_MEM_USED
346 Der Speicher, der durch den Driver belegt ist, ohne
347 den durch die Speicherverwaltung belegten Speicher
348 (smalloc, slaballoc)
349 - int DID_MEM_TOTAL_UNUSED
350 Der Speicher, der vom System zur Verfuegung gestellt,
351 aber vom Treiber nicht benoetigt wird.
352 - int DID_MEM_AVL_NODES (smalloc, slaballoc)
353 Anzahl der AVL-Knoten, die zur Verwaltung der
354 freien grossen Speicherbloecke verwendet werden
355 (nur smalloc). Dieser Wert kann in Zukunft
356 wieder verschwinden.
357 - mixed * DID_MEM_EXT_STATISTICS (smalloc, slaballoc)
358 Detaillierte Statistiken des Allokators sofern
359 diese aktiviert wurden; 0 anderenfalls.
360
361 Dieser Wert kann in Zukunft wieder verschwinden.
362
363 Das Array enthaelt NUM+2 Eintraege, wobei NUM
364 Anzahl der verschiedenen 'kleinen'
365 Blockgroessen ist. Eintrag [NUM] beschreibt
366 die uebergrossen 'kleinen' Bloecke, Eintrag
367 [NUM+1] beschreibt summarisch die 'grossen'
368 Bloecke. Jeder Eintrag ist ein Array mit
369 diesen Feldern:
370
371 int DID_MEM_ES_MAX_ALLOC:
372 Maximale Anzahl allokierter Bloecke dieser
373 Groesse.
374
375 int DID_MEM_ES_CUR_ALLOC:
376 Derzeitige Anzahl allokierter Bloecke dieser
377 Groesse.
378 Current number of allocated blocks of this size.
379
380 int DID_MEM_ES_MAX_FREE:
381 Maximale Anzahl freier Bloecke dieser
382 Groesse.
383
384 int DID_MEM_ES_CUR_FREE:
385 Derzeitige Anzahl freier Bloecke dieser
386 Groesse.
387
388 float DID_MEM_ES_AVG_XALLOC:
389 Durchschnittliche Zahl von Allokationen pro
390 Sekunde.
391
392 float DID_MEM_ES_AVG_XFREE:
393 Durchschnittliche Zahl von Deallokationen pro
394 Sekunde.
395
396 Die Durchschnittsstatistiken schliessen interne
397 Umsortierungen der Blocklisten nicht ein.
398
399
400 DINFO_TRACE (7): Liefert die 'trace' Information aus dem
401 Call Stack entsprechend der Spezifikation in <arg2>. Das Resultat
402 ist entweder ein Array (dessen Format nachstehend erlaeutert ist)
403 oder ein druckbarer String. Wird <arg2> weggelasen entspricht
404 dies DIT_CURRENT.
405
406 <arg2> == DIT_CURRENT (0): Momentaner Call Trace
407 == DIT_ERROR (1): Letzter Fehler Trace (caught oder
408 uncaught)
409 == DIT_UNCAUGHT_ERROR (2): Letzer Fehler Trace, der nicht
410 gefangen werden konnte (uncaught)
411
412 Die Information wird in Form eines Array uebergeben.
413
414 Die Fehlertraces werden nur geaendert, wenn ein entsprechender
415 Fehler auftritt; ausserdem werden sie bei einem GC (Garbage
416 Collection) geloescht. Nach einem Fehler, der nicht gefangen
417 werden konnte (uncaught error), weisen beide Traces auf das
418 gleiche Array, sodass der ==-Operator gilt.
419
420 Wenn das Array mehr als ein Element enthaelt, ist das erste
421 Element 0 oder der Name des Objekts, dessen heart_beat() den
422 laufenden Zyklus begonnen hat; alle nachfolgenden Elemente
423 bezeichnen den Call Stack, beginnen mit der hoechsten
424 aufgerufenen Funktion.
425
426 Alle Eintraege im Array sind wiederum Arrays mit folgenden
427 Elementen:
428 - int[TRACE_TYPE]: Der Typ der aufrufenden Funktion
429 TRACE_TYPE_SYMBOL (0): ein Funktionssymbol (sollte nicht
430 vorkommen)
431 TRACE_TYPE_SEFUN (1): eine simul-efun
432 TRACE_TYPE_EFUN (2): eine Efun Closure
433 TRACE_TYPE_LAMBDA (3): eine lambda Closure
434 TRACE_TYPE_LFUN (4): eine normale Lfun
435 - int[TRACE_NAME]
436 _TYPE_EFUN : entweder der Name der Funktion oder der
437 Code einer Operator-Closure
438 _TYPE_LAMBDA : die numerische Lambda-ID
439 _TYPE_LFUN : der Name der Lfun
440 - string[TRACE_PROGRAM]: Der Name des Programms mit dem Code
441 - string[TRACE_OBJECT]: Der Name des Objekts, fuer das der
442 Code ausgefuehrt wurde
443 - int[TRACE_LOC]:
444 _TYPE_LAMBDA : Der Offset des Programms seit Beginn des
445 Closure-Codes
446 _TYPE_LFUN : Die Zeilennummer.
447
448 <arg2> == DIT_STR_CURRENT (3): Liefert Informationen ueber den
449 momentanen Call Trace als druckbarer String.
450
451 <arg2> == DIT_CURRENT_DEPTH (4): Liefert die Zahl der Frames auf
452 dem Control Stack (Rekursionstiefe).
453
454 DINFO_EVAL_NUMBER (8): gibt die Nummer der aktuellen Berechnung
455 zurueck. Diese Nummer wird fuer jeden vom driver initiierten
456 Aufruf von LPC-Code erhoeht, also bei Aufruf von:
457 - Kommandos (die per add_action hinzugefuegt wurden)
458 - heart_beat, reset, clean_up
459 - Aufrufe durch call_out oder input_to
460 - master applies, die auf externe Ereignisse zurueckgehen
461 - driver hooks genauso
462 - Rueckrufen von send_erq
463 - logon in interaktiven Objekten
464
465 Dieser Zaehler kann z.B. benutzt werden, um zu verhindern, dass
466 bestimmte Aktionen mehrfach innerhalb eines heart_beat()
467 ausgefuehrt werden. Eine andere Anwendungsmoeglichkeit sind
468 Zeitstempel zur Sortierung zur Sortierung von Ereignissen.
469
470 Es ist zu beachten, dass der Zaehler ueberlaufen kann, insbesondere
471 auf 32-bit-Systemen. Er kann demzufolge auch negativ werden.
472
473GESCHICHTE
474----------
475::
476
477 Seit 3.2.7 liefert DINFO_STATUS die Information zurueck, anstatt sie
478 nur auszugeben.
479 DINFO_DUMP wurde in 3.2.7 eingefuehrt.
480 LDMud 3.2.8 fuegte die Datengroesse des Objekts zum Resultat von
481 DINFO_MEMORY hinzu, ausserdem die DINFO_DATA Abfrage und die
482 verschiedenen DID_MEM_WASTED Statistiken.
483 LDMud 3.2.9 fuegte DINFO_TRACE, das Indizierungs-Feature von
484 DINFO_DATA, den 'destructed'-DINFO_DUMP, die DID_MEM_CLIB*,
485 die DID_MEM_PERM*, ausserdem DID_ST_OBJECTS_NEWLY_DEST,
486 DID_ST_OBJECTS_DEST, DID_MEM_OVERHEAD, DID_MEM_ALLOCATED,
487 DID_MEM_USED, DID_MEM_TOTAL_UNUSED, DID_ST_HBEAT_CALLS_TOTAL
488 und die found / added / collision Stringstatistiken.
489 LDMud 3.2.10 fuegte die Erzeugungszeit zu DINFO_DUMP:"objects" hinzu,
490 entfernte DID_MEM_UNUSED aus DINFO_DATA:DID_MEMORY, fuegte
491 DINFO_DATA:DID_STATUS DID_ST_BOOT_TIME, DID_ST_MB_FILE und
492 DID_ST_MB_SWAP hinzu und entfernte DID_ST_CALLOUT_SLOTS daraus,
493 fuegte das dritte Argument zu DINFO_OBJLIST hinzu, und veraenderte
494 die Bedeutung von DID_ST_CALLOUT_SIZE und DID_ST_HBEAT_SIZE
495 bzw. _SLOTS.
496 LDMud 3.3.533 fuegte DID_MEM_AVL_NODES zu DINFO_DATA:DID_MEMORY
497 hinzu.
498 LDMud 3.3.603 fuegte DID_MEM_EXT_STATISTICS zu DINFO_DATA:DID_MEMORY
499 hinzu.
500 LDMud 3.3.718 fuegte DIT_CURRENT_DEPTH to DINFO_TRACE hinzu.
501 LDMud 3.3.719 fuegte DINFO_EVAL_NUMBER hinzu.
502
503SIEHE AUCH
504----------
505::
506
507 trace(E), traceprefix(E), malloc(D), status(D), dumpallobj(D)
508