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