Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
debug_utils.h
Go to the documentation of this file.
1 #ifndef GD_DEBUGGING_UTILS_H
2 #define GD_DEBUGGING_UTILS_H
3 
4 #include <ultra64.h>
5 #include "gd_types.h"
6 
7 #define GD_NUM_MEM_TRACKERS 32
8 #define GD_NUM_TIMERS 32
9 
10 // structs
11 struct MemTracker {
12  /* 0x00 */ const char *name;
13  /* 0x04 */ f32 begin; // in bytes?
14  /* 0x08 */ f32 end;
15  /* 0x0C */ f32 total;
16 };
17 
18 struct GdTimer {
19  /* 0x00 */ s32 start; // in cycles
20  /* 0x04 */ s32 end; // in cycles
21  /* 0x08 */ s32 total; // in cycles
22  /* 0x0C */ f32 unk0C;
23  /* 0x10 */ f32 scaledTotal; // total / sTimeScaleFactor (1.0f) Unused function modified value
24  /* 0x14 */ f32 prevScaledTotal;
25  /* 0x18 */ const char *name;
26  /* 0x1C */ s32 unk1C;
27  /* 0x20 */ s32 resetCount;
28 }; // sizeof = 0x24
29 
30 union PrintVal {
31  f32 f;
32  s32 i;
34 };
35 
36 /* based on fields set in gd_fopen; gd_malloc_perm(84) for size */
37 struct GdFile {
38  /* 0x00 */ u8 pad00[4];
39  /* 0x04 */ u32 pos;
40  /* 0x08 */ s8 *stream;
41  /* Known Flags for +0xC field:
42  ** 1 : write mode
43  ** 2 : binary mode
44  ** 4 : eof */
45  /* 0x0C */ u32 flags;
46  /* 0x10 */ u8 pad10[0x50-0x10];
47  /* 0x50 */ u32 size;
48 }; /* sizeof() = 0x54 */
49 
50 // bss
51 extern u8 *gGdStreamBuffer;
52 
53 // functions
54 extern struct MemTracker *start_memtracker(const char *);
55 extern u32 stop_memtracker(const char *);
56 extern void remove_all_memtrackers(void);
57 extern struct MemTracker *get_memtracker_by_id(s32);
58 extern void print_all_memtrackers(void);
59 extern void print_all_timers(void);
60 extern void deactivate_timing(void);
61 extern void activate_timing(void);
62 extern void remove_all_timers(void);
63 extern struct GdTimer *get_timer(const char *);
64 extern struct GdTimer *get_timernum(s32);
65 extern void start_timer(const char *);
66 extern void restart_timer(const char *);
67 extern void split_timer(const char *);
68 extern void stop_timer(const char *);
69 extern f32 get_scaled_timer_total(const char *);
70 extern void fatal_print(const char *);
71 extern void fatal_printf(const char *, ...);
72 extern void add_to_stacktrace(const char *);
73 extern void imout(void);
74 extern f32 func_8018D560(void);
75 extern s32 gd_atoi(const char *);
76 extern f64 gd_lazy_atof(const char *, u32 *);
77 extern char *sprint_val_withspecifiers(char *, union PrintVal, char *);
78 extern void gd_strcpy(char *, const char *);
79 extern char *gd_strdup(const char *);
80 extern u32 gd_strlen(const char *);
81 extern char *gd_strcat(char *, const char *);
82 extern s32 gd_str_not_equal(const char *, const char *);
83 extern s32 gd_str_contains(const char *, const char *);
84 extern s32 gd_feof(struct GdFile *);
85 extern struct GdFile *gd_fopen(const char *, const char *);
86 extern s32 gd_fread(s8 *, s32, s32, struct GdFile *);
87 extern void gd_fclose(struct GdFile *);
88 extern u32 gd_get_file_size(struct GdFile *);
89 extern s32 gd_fread_line(char *, u32, struct GdFile *);
90 
91 #endif /* GD_DEBUGGING_UTILS_H */
void print_all_timers(void)
Definition: debug_utils.c:146
Definition: debug_utils.h:30
double f64
Definition: ultratypes.h:30
u32 size
Definition: debug_utils.h:47
void gd_fclose(struct GdFile *)
signed char s8
Definition: ultratypes.h:11
s64 pad
Definition: debug_utils.h:33
struct GdFile * gd_fopen(const char *, const char *)
Definition: debug_utils.c:738
u32 flags
Definition: debug_utils.h:45
f32 scaledTotal
Definition: debug_utils.h:23
s32 start
Definition: debug_utils.h:19
char * gd_strdup(const char *)
Definition: debug_utils.c:664
void fatal_printf(const char *,...)
Definition: debug_utils.c:389
s32 i
Definition: debug_utils.h:32
void imout(void)
Definition: debug_utils.c:449
struct MemTracker * start_memtracker(const char *)
Definition: debug_utils.c:71
const char * name
Definition: debug_utils.h:25
s32 gd_fread(s8 *, s32, s32, struct GdFile *)
f32 func_8018D560(void)
Definition: debug_utils.c:467
f32 f
Definition: debug_utils.h:31
f64 gd_lazy_atof(const char *, u32 *)
s32 unk1C
Definition: debug_utils.h:26
s32 gd_feof(struct GdFile *)
Definition: debug_utils.c:728
u8 * gGdStreamBuffer
Definition: debug_utils.c:28
u32 pad00
Definition: draw_objects.c:94
s32 resetCount
Definition: debug_utils.h:27
void add_to_stacktrace(const char *)
Definition: debug_utils.c:437
float f32
Definition: ultratypes.h:29
Definition: debug_utils.h:37
void stop_timer(const char *)
Definition: debug_utils.c:339
struct MemTracker * get_memtracker_by_id(s32)
Definition: debug_utils.c:130
u32 gd_strlen(const char *)
Definition: debug_utils.c:678
struct GdTimer * get_timernum(s32)
Definition: debug_utils.c:228
f32 get_scaled_timer_total(const char *)
Definition: debug_utils.c:357
void fatal_print(const char *)
Definition: debug_utils.c:375
void remove_all_memtrackers(void)
Definition: debug_utils.c:118
Definition: debug_utils.h:18
void gd_strcpy(char *, const char *)
Definition: debug_utils.c:646
s32 gd_atoi(const char *)
Definition: debug_utils.c:494
char * sprint_val_withspecifiers(char *, union PrintVal, char *)
Definition: debug_utils.c:604
s8 * stream
Definition: debug_utils.h:40
f32 total
Definition: debug_utils.h:15
signed long long int s64
Definition: ultratypes.h:17
char * gd_strcat(char *, const char *)
Definition: debug_utils.c:689
u32 gd_get_file_size(struct GdFile *)
Definition: debug_utils.c:821
void print_all_memtrackers(void)
Definition: debug_utils.c:135
void split_timer(const char *)
Definition: debug_utils.c:327
void restart_timer(const char *)
Definition: debug_utils.c:307
unsigned char u8
Definition: ultratypes.h:12
s32 gd_fread_line(char *, u32, struct GdFile *)
Definition: debug_utils.c:831
struct GdTimer * get_timer(const char *)
Definition: debug_utils.c:201
f32 unk0C
Definition: debug_utils.h:22
f32 prevScaledTotal
Definition: debug_utils.h:24
f32 begin
Definition: debug_utils.h:13
s32 gd_str_not_equal(const char *, const char *)
Definition: debug_utils.c:704
const char * name
Definition: debug_utils.h:12
signed int s32
Definition: ultratypes.h:15
void deactivate_timing(void)
Definition: debug_utils.c:159
u32 pos
Definition: debug_utils.h:39
u32 stop_memtracker(const char *)
Definition: debug_utils.c:99
s32 gd_str_contains(const char *, const char *)
Definition: debug_utils.c:715
void activate_timing(void)
Definition: debug_utils.c:164
void remove_all_timers(void)
Definition: debug_utils.c:169
s32 total
Definition: debug_utils.h:21
unsigned int u32
Definition: ultratypes.h:16
f32 end
Definition: debug_utils.h:14
s32 end
Definition: debug_utils.h:20
void start_timer(const char *)
Definition: debug_utils.c:285
Definition: debug_utils.h:11