Rev 6152 | Rev 6684 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6152 | Rev 6278 | ||
---|---|---|---|
1 | #ifndef INCLUDE_DEBUG_H |
1 | #ifndef INCLUDE_DEBUG_H |
2 | #define INCLUDE_DEBUG_H |
2 | #define INCLUDE_DEBUG_H |
3 | #print "[include |
3 | #print "[include |
4 | 4 | ||
5 | #ifndef INCLUDE_STRING_H |
5 | #ifndef INCLUDE_STRING_H |
6 | #include "../lib/strings.h" |
6 | #include "../lib/strings.h" |
7 | #endif |
7 | #endif |
8 | 8 | ||
9 | inline fastcall void debugch( ECX) |
9 | inline fastcall void debugch( ECX) |
10 | { |
10 | { |
11 | $push eax |
11 | $push eax |
12 | $push ebx |
12 | $push ebx |
13 | $mov eax,63 |
13 | $mov eax,63 |
14 | $mov ebx,1 |
14 | $mov ebx,1 |
15 | $int 0x40 |
15 | $int 0x40 |
16 | $pop ebx |
16 | $pop ebx |
17 | $pop eax |
17 | $pop eax |
18 | } |
18 | } |
19 | 19 | ||
20 | inline fastcall void debug( EDX) |
20 | inline fastcall void debug( EDX) |
21 | { |
21 | { |
22 | $push eax |
22 | $push eax |
23 | $push ebx |
23 | $push ebx |
24 | $push ecx |
24 | $push ecx |
25 | $mov eax, 63 |
25 | $mov eax, 63 |
26 | $mov ebx, 1 |
26 | $mov ebx, 1 |
27 | NEXT_CHAR: |
27 | NEXT_CHAR: |
28 | $mov ecx, DSDWORD[edx] |
28 | $mov ecx, DSDWORD[edx] |
29 | $or cl, cl |
29 | $or cl, cl |
30 | $jz DONE |
30 | $jz DONE |
31 | $int 0x40 |
31 | $int 0x40 |
32 | $inc edx |
32 | $inc edx |
33 | $jmp NEXT_CHAR |
33 | $jmp NEXT_CHAR |
34 | DONE: |
34 | DONE: |
35 | $pop ecx |
35 | $pop ecx |
36 | $pop ebx |
36 | $pop ebx |
37 | $pop eax |
37 | $pop eax |
38 | } |
38 | } |
39 | 39 | ||
40 | inline fastcall void debugln( EDX) |
40 | inline fastcall void debugln( EDX) |
41 | { |
41 | { |
42 | debug( EDX); |
42 | debug( EDX); |
43 | debugch(10); |
43 | debugch(10); |
44 | debugch(13); |
44 | debugch(13); |
45 | } |
45 | } |
46 | 46 | ||
47 | inline void debugi(dword d_int) |
47 | inline void debugi(dword d_int) |
48 | { |
48 | { |
49 | char tmpch[12]; |
49 | char tmpch[12]; |
50 | itoa_(#tmpch, d_int); |
50 | itoa_(#tmpch, d_int); |
51 | debugln(#tmpch); |
51 | debugln(#tmpch); |
52 | } |
52 | } |
- | 53 | ||
- | 54 | :void debugval(dword text,number) |
|
- | 55 | { |
|
- | 56 | debug(text); |
|
- | 57 | debug(": "); |
|
- | 58 | debugi(number); |
|
- | 59 | } |
|
53 | 60 | ||
54 | :void assert(dword _type, _actual, _expected) |
61 | :void assert(dword _type, _actual, _expected) |
55 | { |
62 | { |
56 | char r[4096]; |
63 | char r[4096]; |
57 | if (_type=='s') { |
64 | if (_type=='s') { |
58 | if (streq(_actual, _expected)) return; |
65 | if (streq(_actual, _expected)) return; |
59 | sprintf(#r, "==========nok{\nactual: %s\nexpected: %s", _actual, _expected); |
66 | sprintf(#r, "==========nok{\nactual: %s\nexpected: %s", _actual, _expected); |
60 | debugln(#r); |
67 | debugln(#r); |
61 | } |
68 | } |
62 | if (_type=='i') { |
69 | if (_type=='i') { |
63 | if (_actual == _expected)) return; |
70 | if (_actual == _expected)) return; |
64 | sprintf(#r, "==========nok{\nactual: %i\nexpected: %i", _actual, _expected); |
71 | sprintf(#r, "==========nok{\nactual: %i\nexpected: %i", _actual, _expected); |
65 | debugln(#r); |
72 | debugln(#r); |
66 | } |
73 | } |
67 | } |
74 | } |
68 | 75 | ||
69 | #endif |
76 | #endif |