现在,来看看成果。

以如下C代码为运行样本:

int global_a = 1 + 2;int global_b = 1 - 2;int global_c = 1 * 2;int global_d = 1 / 2;int global_e = 1 % 2;int global_f = 1 & 2;int global_g = 1 | 2;int global_h = 1 ^ 2;int global_i = 1 && 2;int global_j = 1 == 2;int global_k = 1 > 2;int global_l = 1 >= 2;int global_m = 1 < 2;int global_n = 1 <= 2;int global_o = 1 != 2;int global_p = 1 || 2;int global_q = 1 << 2;int global_r = 1 >> 2;char global_ch = 'a';char* global_str = "abcdefghijklmn";void fork(){    int x = 1;    if (x > 0)        x = 2;    else        x = 3;    // return ;    x = 2;    for(int i = 0; i < 5; i++)    {        x++;        break;    }    while(x < 10)        x++;    x = 0;    do    {        x++;    }while(x < 5);    x = 2;    switch(x)    {        case 1:        case 2: x++;        case 3: break;        case 4:        default: break;    }    // switch in for    for(x = 1; x < 10; x++)    {        switch(x)        {            case 1: break;            case 2:            case 3:                 {                    if (x == 2)                        x = 2;                    else                        x = 3;                }                break;            case 4:                 {                    for(int y = 0; y < 5; y++)                    {                        if (y >= 3)                            break;                    }                    }                break;            case 6:                break;            case 7:            case 8:            default:                {                    x = x;                }                break;        } // switch    } // for}void fork2(int a, int b){    print("iterate fork2: a=%i, b=%i\n", a, b);    if (a + b == 2)        return;    else        fork2(--a, --b);}void fork3(...){    int len = varlen();    print("Variable function:fork3\n");    print("length is %i\n", len);    for(int i = 0; i < len; i++)    {        int x = vararg(i);        print("x=%i\n", x);    }    return ;}int strlen(char* str){    int len = 0;    char* ptr = str;    while(*ptr != 0)    {        len++;        ptr++;    }    return len;}void main(){        fork();        fork2(5, 5);    fork3(1);    fork3(1, 2);    fork3(1, 2, 3);        // Test pointer assign    char* str = "abcdefg";    char* str2 = str;    print("str=%s\n", str);    print("str2=%s\n", str2);    print("str len=%i\n", strlen(str));    print("str2 len=%i\n", strlen(str2));    char* str3 = malloc(5);    *(str3 + 0) = 'a';    *(str3 + 1) = 'b';    *(str3 + 2) = 0;    print("str3=%s\n", str3);    int iVal = 0;    if (input("Test Input", "Please input a string", "0", "%i", "Integer required", &iVal))    {        print("result=%i \n", iVal);    }    switch(confirm("hello", "world"))    {        case 0: prompt("Result", "You pressed no."); break;        case 1: prompt("Result", "You pressed yes."); break;    }}

运行之,则有:
提示输入:

输入133(记念曾经的133路大巴),会打印之,然后出现:



此处记忆错误,应为113路大巴。

让我们点击“是”按钮,出现提示对话框:

关闭提示对话框后,看看命令行窗口中的结果:

查看Debug输出:

1>>Warning: Line: 2 Pos: 1 "global_a = 1 + 2;": Variable "global_a" is defined but never used.2>>Warning: Line: 3 Pos: 1 "global_b = 1 - 2;": Variable "global_b" is defined but never used.3>>Warning: Line: 4 Pos: 1 "global_c = 1 * 2;": Variable "global_c" is defined but never used.4>>Warning: Line: 5 Pos: 1 "global_d = 1 / 2;": Variable "global_d" is defined but never used.5>>Warning: Line: 6 Pos: 1 "global_e = 1 % 2;": Variable "global_e" is defined but never used.6>>Warning: Line: 7 Pos: 1 "global_f = 1 & 2;": Variable "global_f" is defined but never used.7>>Warning: Line: 8 Pos: 1 "global_g = 1 | 2;": Variable "global_g" is defined but never used.8>>Warning: Line: 9 Pos: 1 "global_h = 1 ^ 2;": Variable "global_h" is defined but never used.9>>Warning: Line: 10 Pos: 1 "global_i = 1 && 2;": Variable "global_i" is defined but never used.10>>Warning: Line: 11 Pos: 1 "global_j = 1 == 2;": Variable "global_j" is defined but never used.11>>Warning: Line: 12 Pos: 1 "global_k = 1 > 2;": Variable "global_k" is defined but never used.12>>Warning: Line: 13 Pos: 1 "global_l = 1 >= 2;": Variable "global_l" is defined but never used.13>>Warning: Line: 14 Pos: 1 "global_m = 1 < 2;": Variable "global_m" is defined but never used.14>>Warning: Line: 15 Pos: 1 "global_n = 1 <= 2;": Variable "global_n" is defined but never used.15>>Warning: Line: 16 Pos: 1 "global_o = 1 != 2;": Variable "global_o" is defined but never used.16>>Warning: Line: 17 Pos: 1 "global_p = 1 || 2;": Variable "global_p" is defined but never used.17>>Warning: Line: 18 Pos: 1 "global_q = 1 << 2;": Variable "global_q" is defined but never used.18>>Warning: Line: 19 Pos: 1 "global_r = 1 >> 2;": Variable "global_r" is defined but never used.19>>Warning: Line: 21 Pos: 1 "global_ch = 'a';": Variable "global_ch" is defined but never used.20>>Warning: Line: 22 Pos: 1 "global_str = "abcdefghijklmn";": Variable "global_str" is defined but never used.21>>Warning: Line: 142 Pos: 1 "void main()": Function "main" is defined but never used.================================ Program Begin ================================Declare [char * "$var_char_ptr_121$"] Address: [0x00000004] Size:4Constant $const_init_122$ refers to $var_char_ptr_121$Initialize pointer $var_char_ptr_121$ Address: 0x00000004 Value: 0x00000008Declare [char * "$var_char_ptr_119$"] Address: [0x0000001C] Size:4Constant $const_init_120$ refers to $var_char_ptr_119$Initialize pointer $var_char_ptr_119$ Address: 0x0000001C Value: 0x00000020Declare [char * "$var_char_ptr_116$"] Address: [0x00000028] Size:4Constant $const_init_117$ refers to $var_char_ptr_116$Initialize pointer $var_char_ptr_116$ Address: 0x00000028 Value: 0x0000002CDeclare [char * "$var_char_ptr_114$"] Address: [0x0000003C] Size:4Constant $const_init_115$ refers to $var_char_ptr_114$Initialize pointer $var_char_ptr_114$ Address: 0x0000003C Value: 0x00000040Declare [char * "$var_char_ptr_111$"] Address: [0x00000048] Size:4Constant $const_init_112$ refers to $var_char_ptr_111$Initialize pointer $var_char_ptr_111$ Address: 0x00000048 Value: 0x0000004CDeclare [char * "$var_char_ptr_109$"] Address: [0x00000054] Size:4Constant $const_init_110$ refers to $var_char_ptr_109$Initialize pointer $var_char_ptr_109$ Address: 0x00000054 Value: 0x00000058Declare [char * "$var_char_ptr_107$"] Address: [0x00000060] Size:4Constant $const_init_108$ refers to $var_char_ptr_107$Initialize pointer $var_char_ptr_107$ Address: 0x00000060 Value: 0x00000064Declare [char * "$var_char_ptr_104$"] Address: [0x00000074] Size:4Constant $const_init_105$ refers to $var_char_ptr_104$Initialize pointer $var_char_ptr_104$ Address: 0x00000074 Value: 0x00000078Declare [char * "$var_char_ptr_102$"] Address: [0x0000008C] Size:4Constant $const_init_103$ refers to $var_char_ptr_102$Initialize pointer $var_char_ptr_102$ Address: 0x0000008C Value: 0x00000090Declare [char * "$var_char_ptr_100$"] Address: [0x00000094] Size:4Constant $const_init_101$ refers to $var_char_ptr_100$Initialize pointer $var_char_ptr_100$ Address: 0x00000094 Value: 0x00000098Declare [char * "$var_char_ptr_98$"] Address: [0x0000009C] Size:4Constant $const_init_99$ refers to $var_char_ptr_98$Initialize pointer $var_char_ptr_98$ Address: 0x0000009C Value: 0x000000A0Declare [char * "$var_char_ptr_96$"] Address: [0x000000B8] Size:4Constant $const_init_97$ refers to $var_char_ptr_96$Initialize pointer $var_char_ptr_96$ Address: 0x000000B8 Value: 0x000000BCDeclare [char * "$var_char_ptr_93$"] Address: [0x000000C8] Size:4Constant $const_init_94$ refers to $var_char_ptr_93$Initialize pointer $var_char_ptr_93$ Address: 0x000000C8 Value: 0x000000CCDeclare [char * "$var_char_ptr_86$"] Address: [0x000000D8] Size:4Constant $const_init_87$ refers to $var_char_ptr_86$Initialize pointer $var_char_ptr_86$ Address: 0x000000D8 Value: 0x000000DCDeclare [char * "$var_char_ptr_83$"] Address: [0x000000EC] Size:4Constant $const_init_84$ refers to $var_char_ptr_83$Initialize pointer $var_char_ptr_83$ Address: 0x000000EC Value: 0x000000F0Declare [char * "$var_char_ptr_80$"] Address: [0x00000100] Size:4Constant $const_init_81$ refers to $var_char_ptr_80$Initialize pointer $var_char_ptr_80$ Address: 0x00000100 Value: 0x00000104Declare [char * "$var_char_ptr_77$"] Address: [0x00000110] Size:4Constant $const_init_78$ refers to $var_char_ptr_77$Initialize pointer $var_char_ptr_77$ Address: 0x00000110 Value: 0x00000114Declare [char * "$var_char_ptr_73$"] Address: [0x00000120] Size:4Constant $const_init_74$ refers to $var_char_ptr_73$Initialize pointer $var_char_ptr_73$ Address: 0x00000120 Value: 0x00000124Declare [char * "$var_char_ptr_59$"] Address: [0x0000012C] Size:4Constant $const_init_60$ refers to $var_char_ptr_59$Initialize pointer $var_char_ptr_59$ Address: 0x0000012C Value: 0x00000130Declare [char * "$var_char_ptr_54$"] Address: [0x00000138] Size:4Constant $const_init_55$ refers to $var_char_ptr_54$Initialize pointer $var_char_ptr_54$ Address: 0x00000138 Value: 0x0000013CDeclare [char * "$var_char_ptr_51$"] Address: [0x0000014C] Size:4Constant $const_init_52$ refers to $var_char_ptr_51$Initialize pointer $var_char_ptr_51$ Address: 0x0000014C Value: 0x00000150Declare [char * "$var_char_ptr_45$"] Address: [0x0000016C] Size:4Constant $const_init_46$ refers to $var_char_ptr_45$Initialize pointer $var_char_ptr_45$ Address: 0x0000016C Value: 0x00000170Declare [char * "$var_char_ptr_21$"] Address: [0x0000018C] Size:4Constant $const_init_22$ refers to $var_char_ptr_21$Initialize pointer $var_char_ptr_21$ Address: 0x0000018C Value: 0x00000190Declare [int "global_a"] Address: [0x000001A0] Size:4    Exp: [1 + 2] Result: [3]    Exp: [global_a = 3] Result: [global_a]Declare [int "global_b"] Address: [0x000001A4] Size:4    Exp: [1 - 2] Result: [-1]    Exp: [global_b = -1] Result: [global_b]Declare [int "global_c"] Address: [0x000001A8] Size:4    Exp: [1  *  2] Result: [2]    Exp: [global_c = 2] Result: [global_c]Declare [int "global_d"] Address: [0x000001AC] Size:4    Exp: [1 / 2] Result: [0]    Exp: [global_d = 0] Result: [global_d]Declare [int "global_e"] Address: [0x000001B0] Size:4    Exp: [1 % 2] Result: [1]    Exp: [global_e = 1] Result: [global_e]Declare [int "global_f"] Address: [0x000001B4] Size:4A first chance exception of type 'SharpC.RuntimeException' occurred in SharpC.dllDeclare [int "global_g"] Address: [0x000001B8] Size:4    Exp: [1 | 2] Result: [3]    Exp: [global_g = 3] Result: [global_g]Declare [int "global_h"] Address: [0x000001BC] Size:4    Exp: [1 ^ 2] Result: [3]    Exp: [global_h = 3] Result: [global_h]Declare [int "global_i"] Address: [0x000001C0] Size:4    Exp: [1 && 2] Result: [1]    Exp: [global_i = 1] Result: [global_i]Declare [int "global_j"] Address: [0x000001C4] Size:4    Exp: [1 == 2] Result: [0]    Exp: [global_j = 0] Result: [global_j]Declare [int "global_k"] Address: [0x000001C8] Size:4    Exp: [1 > 2] Result: [0]    Exp: [global_k = 0] Result: [global_k]Declare [int "global_l"] Address: [0x000001CC] Size:4    Exp: [1 >= 2] Result: [0]    Exp: [global_l = 0] Result: [global_l]Declare [int "global_m"] Address: [0x000001D0] Size:4    Exp: [1 < 2] Result: [1]    Exp: [global_m = 1] Result: [global_m]Declare [int "global_n"] Address: [0x000001D4] Size:4    Exp: [1 <= 2] Result: [1]    Exp: [global_n = 1] Result: [global_n]Declare [int "global_o"] Address: [0x000001D8] Size:4    Exp: [1 != 2] Result: [1]    Exp: [global_o = 1] Result: [global_o]Declare [int "global_p"] Address: [0x000001DC] Size:4    Exp: [1 || 2] Result: [1]    Exp: [global_p = 1] Result: [global_p]Declare [int "global_q"] Address: [0x000001E0] Size:4    Exp: [1 << 2] Result: [4]    Exp: [global_q = 4] Result: [global_q]Declare [int "global_r"] Address: [0x000001E4] Size:4    Exp: [1 >> 2] Result: [0]    Exp: [global_r = 0] Result: [global_r]Declare [char "global_ch"] Address: [0x000001E8] Size:4    Exp: [global_ch = 97] Result: [global_ch]Declare [char * "global_str"] Address: [0x000001EC] Size:4    Exp: [global_str = $var_char_ptr_21$] Result: [global_str]Call function "fork" with [0] parameterDeclare [int "x"] Address: [0x000001F0] Size:4    Exp: [x = 1] Result: [x]if(x > 0)    Exp: [x > 0] Result: [1]Condition=1Then    Exp: [x = 2] Result: [x]    Exp: [x = 2] Result: [x]Begin For.Declare [int "i"] Address: [0x000001F4] Size:4    Exp: [i = 0] Result: [i]Free local variable: i Address: [0x000001f4] Size:4    Exp: [i < 5] Result: [1]Condition: [i < 5] = 1    Exp: [x ++ ] Result: [2]BreakEnd For.Begin While.    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [3]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [4]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [5]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [6]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [7]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [8]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1    Exp: [x ++ ] Result: [9]    Exp: [x < 10] Result: [0]Condition: [x < 10] = 0End While.    Exp: [x = 0] Result: [x]Begin Do...While.    Exp: [x ++ ] Result: [0]    Exp: [x < 5] Result: [1]Condition : x < 5 = 1    Exp: [x ++ ] Result: [1]    Exp: [x < 5] Result: [1]Condition : x < 5 = 1    Exp: [x ++ ] Result: [2]    Exp: [x < 5] Result: [1]Condition : x < 5 = 1    Exp: [x ++ ] Result: [3]    Exp: [x < 5] Result: [1]Condition : x < 5 = 1    Exp: [x ++ ] Result: [4]    Exp: [x < 5] Result: [0]Condition : x < 5 = 0End Do...While.    Exp: [x = 2] Result: [x]Begin Switch.Condition: [x] = 2case 2    Exp: [x ++ ] Result: [2]case 3Break.Break.Begin For.    Exp: [x = 1] Result: [x]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 1case 1Break.Break.    Exp: [x ++ ] Result: [1]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 2case 2case 3if(x == 2)    Exp: [x == 2] Result: [1]Condition=1Then    Exp: [x = 2] Result: [x]Break.Break.case 4Begin For.Declare [int "y"] Address: [0x000001F8] Size:4    Exp: [y = 0] Result: [y]Free local variable: y Address: [0x000001f8] Size:4    Exp: [y < 5] Result: [1]Condition: [y < 5] = 1if(y >= 3)    Exp: [y >= 3] Result: [0]Condition=0    Exp: [y ++ ] Result: [0]    Exp: [y < 5] Result: [1]Condition: [y < 5] = 1if(y >= 3)    Exp: [y >= 3] Result: [0]Condition=0    Exp: [y ++ ] Result: [1]    Exp: [y < 5] Result: [1]Condition: [y < 5] = 1if(y >= 3)    Exp: [y >= 3] Result: [0]Condition=0    Exp: [y ++ ] Result: [2]    Exp: [y < 5] Result: [1]Condition: [y < 5] = 1if(y >= 3)    Exp: [y >= 3] Result: [1]Condition=1ThenBreakBreak.Break.End For.Break.Break.case 6Break.Break.case 7case 8    Exp: [x ++ ] Result: [2]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 3case 3if(x == 2)    Exp: [x == 2] Result: [0]Condition=0Else    Exp: [x = 3] Result: [x]Break.Break.case 4Begin For.Declare [int "y"] Address: [0x000001F4] Size:4    Exp: [y = 0] Result: [y]Free local variable: y Address: [0x000001f4] Size:4    Exp: [y < 5] Result: [1]Condition: [y < 5] = 1if(y >= 3)    Exp: [y >= 3] Result: [0]Condition=0End For.Break.Break.case 6Break.Break.case 7case 8    Exp: [x ++ ] Result: [3]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 4case 4Begin For.Declare [int "y"] Address: [0x000001FC] Size:4    Exp: [y = 0] Result: [y]Free local variable: y Address: [0x000001fc] Size:4    Exp: [y < 5] Result: [1]Condition: [y < 5] = 1if(y >= 3)    Exp: [y >= 3] Result: [0]Condition=0End For.Break.Break.case 6Break.Break.case 7case 8    Exp: [x ++ ] Result: [4]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 5Default    Exp: [x = x] Result: [x]Break.    Exp: [x ++ ] Result: [5]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 6case 6Break.Break.case 7case 8    Exp: [x ++ ] Result: [6]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 7case 7case 8    Exp: [x ++ ] Result: [7]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 8case 8    Exp: [x ++ ] Result: [8]    Exp: [x < 10] Result: [1]Condition: [x < 10] = 1Begin Switch.Condition: [x] = 9Default    Exp: [x = x] Result: [x]Break.    Exp: [x ++ ] Result: [9]    Exp: [x < 10] Result: [0]Condition: [x < 10] = 0End For.Free local variable: x Address: [0x000001f0] Size:4Call function "fork2" with [2] parametersDeclare [int "a"] Address: [0x000001F8] Size:4Declare [int "b"] Address: [0x000001F4] Size:4Set parameter "a" : 5Set parameter "b" : 5Call function "print" with [3] parametersDeclare [char * "$var_char_ptr_123$"] Address: [0x00000200] Size:4Declare [int "$var_int_124$"] Address: [0x000001FC] Size:4Declare [int "$var_int_125$"] Address: [0x000001F0] Size:4Set parameter "$var_char_ptr_123$" : 364Set parameter "$var_int_124$" : 5Set parameter "$var_int_125$" : 5print("iterate fork2: a=%i, b=%i\n",5,5) output:{{iterate fork2: a=5, b=5}}Free [char * "$var_char_ptr_123$"] Address: 00000200 Size: 4Free [int "$var_int_124$"] Address: 000001FC Size: 4Free [int "$var_int_125$"] Address: 000001F0 Size: 4if(a + b == 2)    Exp: [a + b] Result: [10]    Exp: [10 == 2] Result: [0]Condition=0Else    Exp: [a -- ] Result: [4]    Exp: [b -- ] Result: [4]Call function "fork2" with [2] parametersfunction iteration: fork2 for 1 timeSet parameter "a" : 4Set parameter "b" : 4Call function "print" with [3] parametersDeclare [char * "$var_char_ptr_126$"] Address: [0x00000204] Size:4Declare [int "$var_int_127$"] Address: [0x00000200] Size:4Declare [int "$var_int_128$"] Address: [0x000001FC] Size:4Set parameter "$var_char_ptr_126$" : 364Set parameter "$var_int_127$" : 4Set parameter "$var_int_128$" : 4print("iterate fork2: a=%i, b=%i\n",4,4) output:{{iterate fork2: a=4, b=4}}Free [char * "$var_char_ptr_126$"] Address: 00000204 Size: 4Free [int "$var_int_127$"] Address: 00000200 Size: 4Free [int "$var_int_128$"] Address: 000001FC Size: 4if(a + b == 2)    Exp: [a + b] Result: [8]    Exp: [8 == 2] Result: [0]Condition=0Else    Exp: [a -- ] Result: [3]    Exp: [b -- ] Result: [3]Call function "fork2" with [2] parametersfunction iteration: fork2 for 2 timesSet parameter "a" : 3Set parameter "b" : 3Call function "print" with [3] parametersDeclare [char * "$var_char_ptr_129$"] Address: [0x000001F0] Size:4Declare [int "$var_int_130$"] Address: [0x00000208] Size:4Declare [int "$var_int_131$"] Address: [0x00000204] Size:4Set parameter "$var_char_ptr_129$" : 364Set parameter "$var_int_130$" : 3Set parameter "$var_int_131$" : 3print("iterate fork2: a=%i, b=%i\n",3,3) output:{{iterate fork2: a=3, b=3}}Free [char * "$var_char_ptr_129$"] Address: 000001F0 Size: 4Free [int "$var_int_130$"] Address: 00000208 Size: 4Free [int "$var_int_131$"] Address: 00000204 Size: 4if(a + b == 2)    Exp: [a + b] Result: [6]    Exp: [6 == 2] Result: [0]Condition=0Else    Exp: [a -- ] Result: [2]    Exp: [b -- ] Result: [2]Call function "fork2" with [2] parametersfunction iteration: fork2 for 3 timesSet parameter "a" : 2Set parameter "b" : 2Call function "print" with [3] parametersDeclare [char * "$var_char_ptr_132$"] Address: [0x00000200] Size:4Declare [int "$var_int_133$"] Address: [0x000001FC] Size:4Declare [int "$var_int_134$"] Address: [0x0000020C] Size:4Set parameter "$var_char_ptr_132$" : 364Set parameter "$var_int_133$" : 2Set parameter "$var_int_134$" : 2print("iterate fork2: a=%i, b=%i\n",2,2) output:{{iterate fork2: a=2, b=2}}Free [char * "$var_char_ptr_132$"] Address: 00000200 Size: 4Free [int "$var_int_133$"] Address: 000001FC Size: 4Free [int "$var_int_134$"] Address: 0000020C Size: 4if(a + b == 2)    Exp: [a + b] Result: [4]    Exp: [4 == 2] Result: [0]Condition=0Else    Exp: [a -- ] Result: [1]    Exp: [b -- ] Result: [1]Call function "fork2" with [2] parametersfunction iteration: fork2 for 4 timesSet parameter "a" : 1Set parameter "b" : 1Call function "print" with [3] parametersDeclare [char * "$var_char_ptr_135$"] Address: [0x000001F0] Size:4Declare [int "$var_int_136$"] Address: [0x00000208] Size:4Declare [int "$var_int_137$"] Address: [0x00000204] Size:4Set parameter "$var_char_ptr_135$" : 364Set parameter "$var_int_136$" : 1Set parameter "$var_int_137$" : 1print("iterate fork2: a=%i, b=%i\n",1,1) output:{{iterate fork2: a=1, b=1}}Free [char * "$var_char_ptr_135$"] Address: 000001F0 Size: 4Free [int "$var_int_136$"] Address: 00000208 Size: 4Free [int "$var_int_137$"] Address: 00000204 Size: 4if(a + b == 2)    Exp: [a + b] Result: [2]    Exp: [2 == 2] Result: [1]Condition=1ThenreturnSet parameter "a" : 2Set parameter "b" : 2Set parameter "a" : 3Set parameter "b" : 3Set parameter "a" : 4Set parameter "b" : 4Set parameter "a" : 5Set parameter "b" : 5Call function "fork3" with [1] parametersDeclare [short "$var_short_138$"] Address: [0x00000210] Size:4Set parameter "$var_short_138$" : 1Declare [int "len"] Address: [0x00000200] Size:4Call function "varlen" with [0] parameter    Exp: [len = 1] Result: [len]Call function "print" with [1] parametersDeclare [char * "$var_char_ptr_139$"] Address: [0x000001FC] Size:4Set parameter "$var_char_ptr_139$" : 332print("Variable function:fork3\n") output:{{Variable function:fork3}}Free [char * "$var_char_ptr_139$"] Address: 000001FC Size: 4Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_140$"] Address: [0x0000020C] Size:4Declare [int "$var_int_141$"] Address: [0x000001F0] Size:4Set parameter "$var_char_ptr_140$" : 312Set parameter "$var_int_141$" : 1print("length is %i\n",1) output:{{length is 1}}Free [char * "$var_char_ptr_140$"] Address: 0000020C Size: 4Free [int "$var_int_141$"] Address: 000001F0 Size: 4Begin For.Declare [int "i"] Address: [0x00000208] Size:4    Exp: [i = 0] Result: [i]Free local variable: i Address: [0x00000208] Size:4    Exp: [i < len] Result: [1]Condition: [i < len] = 1Declare [int "x"] Address: [0x00000204] Size:4Call function "vararg" with [1] parametersDeclare [int "argIdx"] Address: [0x00000214] Size:4Set parameter "argIdx" : 0    Exp: [x = 1] Result: [x]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_142$"] Address: [0x000001FC] Size:4Declare [int "$var_int_143$"] Address: [0x0000020C] Size:4Set parameter "$var_char_ptr_142$" : 300Set parameter "$var_int_143$" : 1print("x=%i\n",1) output:{{x=1}}Free [char * "$var_char_ptr_142$"] Address: 000001FC Size: 4Free [int "$var_int_143$"] Address: 0000020C Size: 4Free local variable: x Address: [0x00000204] Size:4    Exp: [i ++ ] Result: [0]    Exp: [i < len] Result: [0]Condition: [i < len] = 0End For.returnFree local variable: len Address: [0x00000200] Size:4Free [short "$var_short_138$"] Address: 00000210 Size: 4Call function "fork3" with [2] parametersDeclare [short "$var_short_144$"] Address: [0x000001F0] Size:4Declare [short "$var_short_145$"] Address: [0x00000208] Size:4Set parameter "$var_short_144$" : 1Set parameter "$var_short_145$" : 2Declare [int "len"] Address: [0x00000218] Size:4Call function "varlen" with [0] parameter    Exp: [len = 2] Result: [len]Call function "print" with [1] parametersDeclare [char * "$var_char_ptr_146$"] Address: [0x000001FC] Size:4Set parameter "$var_char_ptr_146$" : 332print("Variable function:fork3\n") output:{{Variable function:fork3}}Free [char * "$var_char_ptr_146$"] Address: 000001FC Size: 4Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_147$"] Address: [0x0000020C] Size:4Declare [int "$var_int_148$"] Address: [0x00000204] Size:4Set parameter "$var_char_ptr_147$" : 312Set parameter "$var_int_148$" : 2print("length is %i\n",2) output:{{length is 2}}Free [char * "$var_char_ptr_147$"] Address: 0000020C Size: 4Free [int "$var_int_148$"] Address: 00000204 Size: 4Begin For.Declare [int "i"] Address: [0x00000200] Size:4    Exp: [i = 0] Result: [i]Free local variable: i Address: [0x00000200] Size:4    Exp: [i < len] Result: [1]Condition: [i < len] = 1Declare [int "x"] Address: [0x00000210] Size:4Call function "vararg" with [1] parametersSet parameter "argIdx" : 0    Exp: [x = 1] Result: [x]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_149$"] Address: [0x0000021C] Size:4Declare [int "$var_int_150$"] Address: [0x000001FC] Size:4Set parameter "$var_char_ptr_149$" : 300Set parameter "$var_int_150$" : 1print("x=%i\n",1) output:{{x=1}}Free [char * "$var_char_ptr_149$"] Address: 0000021C Size: 4Free [int "$var_int_150$"] Address: 000001FC Size: 4Free local variable: x Address: [0x00000210] Size:4    Exp: [i ++ ] Result: [0]    Exp: [i < len] Result: [1]Condition: [i < len] = 1Declare [int "x"] Address: [0x0000020C] Size:4Call function "vararg" with [1] parametersSet parameter "argIdx" : 1    Exp: [x = 2] Result: [x]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_151$"] Address: [0x00000204] Size:4Declare [int "$var_int_152$"] Address: [0x00000200] Size:4Set parameter "$var_char_ptr_151$" : 300Set parameter "$var_int_152$" : 2print("x=%i\n",2) output:{{x=2}}Free [char * "$var_char_ptr_151$"] Address: 00000204 Size: 4Free [int "$var_int_152$"] Address: 00000200 Size: 4Free local variable: x Address: [0x0000020c] Size:4    Exp: [i ++ ] Result: [2]    Exp: [i < len] Result: [0]Condition: [i < len] = 0End For.returnFree local variable: len Address: [0x00000218] Size:4Free [short "$var_short_144$"] Address: 000001F0 Size: 4Free [short "$var_short_145$"] Address: 00000208 Size: 4Call function "fork3" with [3] parametersDeclare [short "$var_short_153$"] Address: [0x00000220] Size:4Declare [short "$var_short_154$"] Address: [0x0000021C] Size:4Declare [short "$var_short_155$"] Address: [0x000001FC] Size:4Set parameter "$var_short_153$" : 1Set parameter "$var_short_154$" : 2Set parameter "$var_short_155$" : 3Declare [int "len"] Address: [0x00000210] Size:4Call function "varlen" with [0] parameter    Exp: [len = 3] Result: [len]Call function "print" with [1] parametersDeclare [char * "$var_char_ptr_156$"] Address: [0x00000204] Size:4Set parameter "$var_char_ptr_156$" : 332print("Variable function:fork3\n") output:{{Variable function:fork3}}Free [char * "$var_char_ptr_156$"] Address: 00000204 Size: 4Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_157$"] Address: [0x00000200] Size:4Declare [int "$var_int_158$"] Address: [0x0000020C] Size:4Set parameter "$var_char_ptr_157$" : 312Set parameter "$var_int_158$" : 3print("length is %i\n",3) output:{{length is 3}}Free [char * "$var_char_ptr_157$"] Address: 00000200 Size: 4Free [int "$var_int_158$"] Address: 0000020C Size: 4Begin For.Declare [int "i"] Address: [0x00000218] Size:4    Exp: [i = 0] Result: [i]Free local variable: i Address: [0x00000218] Size:4    Exp: [i < len] Result: [1]Condition: [i < len] = 1Declare [int "x"] Address: [0x000001F0] Size:4Call function "vararg" with [1] parametersSet parameter "argIdx" : 0    Exp: [x = 1] Result: [x]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_159$"] Address: [0x00000208] Size:4Declare [int "$var_int_160$"] Address: [0x00000224] Size:4Set parameter "$var_char_ptr_159$" : 300Set parameter "$var_int_160$" : 1print("x=%i\n",1) output:{{x=1}}Free [char * "$var_char_ptr_159$"] Address: 00000208 Size: 4Free [int "$var_int_160$"] Address: 00000224 Size: 4Free local variable: x Address: [0x000001f0] Size:4    Exp: [i ++ ] Result: [0]    Exp: [i < len] Result: [1]Condition: [i < len] = 1Declare [int "x"] Address: [0x00000204] Size:4Call function "vararg" with [1] parametersSet parameter "argIdx" : 1    Exp: [x = 2] Result: [x]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_161$"] Address: [0x00000200] Size:4Declare [int "$var_int_162$"] Address: [0x0000020C] Size:4Set parameter "$var_char_ptr_161$" : 300Set parameter "$var_int_162$" : 2print("x=%i\n",2) output:{{x=2}}Free [char * "$var_char_ptr_161$"] Address: 00000200 Size: 4Free [int "$var_int_162$"] Address: 0000020C Size: 4Free local variable: x Address: [0x00000204] Size:4    Exp: [i ++ ] Result: [1]    Exp: [i < len] Result: [1]Condition: [i < len] = 1Declare [int "x"] Address: [0x00000218] Size:4Call function "vararg" with [1] parametersSet parameter "argIdx" : 2    Exp: [x = 3] Result: [x]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_163$"] Address: [0x00000228] Size:4Declare [int "$var_int_164$"] Address: [0x00000208] Size:4Set parameter "$var_char_ptr_163$" : 300Set parameter "$var_int_164$" : 3print("x=%i\n",3) output:{{x=3}}Free [char * "$var_char_ptr_163$"] Address: 00000228 Size: 4Free [int "$var_int_164$"] Address: 00000208 Size: 4Free local variable: x Address: [0x00000218] Size:4    Exp: [i ++ ] Result: [3]    Exp: [i < len] Result: [0]Condition: [i < len] = 0End For.returnFree local variable: len Address: [0x00000210] Size:4Free [short "$var_short_153$"] Address: 00000220 Size: 4Free [short "$var_short_154$"] Address: 0000021C Size: 4Free [short "$var_short_155$"] Address: 000001FC Size: 4Declare [char * "str"] Address: [0x00000224] Size:4    Exp: [str = $var_char_ptr_73$] Result: [str]Declare [char * "str2"] Address: [0x000001F0] Size:4    Exp: [str2 = str] Result: [str2]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_165$"] Address: [0x00000200] Size:4Declare [char * "$var_char_ptr_166$"] Address: [0x0000020C] Size:4Set parameter "$var_char_ptr_165$" : 272Set parameter "$var_char_ptr_166$" : 548print("str=%s\n",524) output:{{str=abcdefg}}Free [char * "$var_char_ptr_165$"] Address: 00000200 Size: 4Free [char * "$var_char_ptr_166$"] Address: 0000020C Size: 4Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_167$"] Address: [0x00000204] Size:4Declare [char * "$var_char_ptr_168$"] Address: [0x0000022C] Size:4Set parameter "$var_char_ptr_167$" : 256Set parameter "$var_char_ptr_168$" : 496print("str2=%s\n",556) output:{{str2=abcdefg}}Free [char * "$var_char_ptr_167$"] Address: 00000204 Size: 4Free [char * "$var_char_ptr_168$"] Address: 0000022C Size: 4Call function "strlen" with [1] parametersDeclare [char * "str"] Address: [0x00000228] Size:4Set parameter "str" : 548Declare [int "len"] Address: [0x00000208] Size:4    Exp: [len = 0] Result: [len]Declare [char * "ptr"] Address: [0x00000218] Size:4    Exp: [ptr = str] Result: [ptr]Begin While.    Exp: [ptr * ] Result: [(* char)[0x00000124]]    Exp: [(* char)[0x00000124] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [0]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x00000125]]    Exp: [(* char)[0x00000125] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [1]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x00000126]]    Exp: [(* char)[0x00000126] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [2]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x00000127]]    Exp: [(* char)[0x00000127] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [3]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x00000128]]    Exp: [(* char)[0x00000128] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [4]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x00000129]]    Exp: [(* char)[0x00000129] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [5]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x0000012A]]    Exp: [(* char)[0x0000012A] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [6]    Exp: [ptr ++ ] Result: [536]    Exp: [ptr * ] Result: [(* char)[0x0000012B]]    Exp: [(* char)[0x0000012B] != 0] Result: [0]Condition: [*ptr != 0] = 0End While.return [7]Free local variable: len Address: [0x00000208] Size:4Free local variable: ptr Address: [0x00000218] Size:4Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_169$"] Address: [0x00000210] Size:4Declare [int "$var_int_170$"] Address: [0x00000220] Size:4Set parameter "$var_char_ptr_169$" : 236Set parameter "$var_int_170$" : 7print("str len=%i\n",7) output:{{str len=7}}Free [char * "$var_char_ptr_169$"] Address: 00000210 Size: 4Free [int "$var_int_170$"] Address: 00000220 Size: 4Call function "strlen" with [1] parametersSet parameter "str" : 496Declare [int "len"] Address: [0x0000021C] Size:4    Exp: [len = 0] Result: [len]Declare [char * "ptr"] Address: [0x000001FC] Size:4    Exp: [ptr = str] Result: [ptr]Begin While.    Exp: [ptr * ] Result: [(* char)[0x00000124]]    Exp: [(* char)[0x00000124] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [0]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x00000125]]    Exp: [(* char)[0x00000125] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [1]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x00000126]]    Exp: [(* char)[0x00000126] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [2]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x00000127]]    Exp: [(* char)[0x00000127] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [3]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x00000128]]    Exp: [(* char)[0x00000128] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [4]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x00000129]]    Exp: [(* char)[0x00000129] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [5]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x0000012A]]    Exp: [(* char)[0x0000012A] != 0] Result: [1]Condition: [*ptr != 0] = 1    Exp: [len ++ ] Result: [6]    Exp: [ptr ++ ] Result: [508]    Exp: [ptr * ] Result: [(* char)[0x0000012B]]    Exp: [(* char)[0x0000012B] != 0] Result: [0]Condition: [*ptr != 0] = 0End While.return [7]Free local variable: len Address: [0x0000021c] Size:4Free local variable: ptr Address: [0x000001fc] Size:4Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_171$"] Address: [0x00000200] Size:4Declare [int "$var_int_172$"] Address: [0x0000020C] Size:4Set parameter "$var_char_ptr_171$" : 216Set parameter "$var_int_172$" : 7print("str2 len=%i\n",7) output:{{str2 len=7}}Free [char * "$var_char_ptr_171$"] Address: 00000200 Size: 4Free [int "$var_int_172$"] Address: 0000020C Size: 4Declare [char * "str3"] Address: [0x00000230] Size:4Call function "malloc" with [1] parametersDeclare [int "size"] Address: [0x00000204] Size:4Set parameter "size" : 5    Exp: [str3 = 564] Result: [str3]    Exp: [str3 + 0] Result: [(char *)[0x00000234]]    Exp: [(char *)[0x00000234] ( ] Result: [(char *)[0x00000234]]    Exp: [(char *)[0x00000234] * ] Result: [(* char)[0x00000234]]    Exp: [(* char)[0x00000234] = 97] Result: [(* char)[0x00000234]]    Exp: [str3 + 1] Result: [(char *)[0x00000235]]    Exp: [(char *)[0x00000235] ( ] Result: [(char *)[0x00000235]]    Exp: [(char *)[0x00000235] * ] Result: [(* char)[0x00000235]]    Exp: [(* char)[0x00000235] = 98] Result: [(* char)[0x00000235]]    Exp: [str3 + 2] Result: [(char *)[0x00000236]]    Exp: [(char *)[0x00000236] ( ] Result: [(char *)[0x00000236]]    Exp: [(char *)[0x00000236] * ] Result: [(* char)[0x00000236]]    Exp: [(* char)[0x00000236] = 0] Result: [(* char)[0x00000236]]Call function "print" with [2] parametersDeclare [char * "$var_char_ptr_173$"] Address: [0x0000022C] Size:4Declare [char * "$var_char_ptr_174$"] Address: [0x00000208] Size:4Set parameter "$var_char_ptr_173$" : 200Set parameter "$var_char_ptr_174$" : 560print("str3=%s\n",520) output:{{str3=ab}}Free [char * "$var_char_ptr_173$"] Address: 0000022C Size: 4Free [char * "$var_char_ptr_174$"] Address: 00000208 Size: 4Declare [int "iVal"] Address: [0x00000218] Size:4    Exp: [iVal = 0] Result: [iVal]if(input($var_char_ptr_96$,$var_char_ptr_98$,$var_char_ptr_100$,$var_char_ptr_102$,$var_char_ptr_104$,&iVal,))    Exp: [iVal & ] Result: [536]Call function "input" with [6] parametersDeclare [char * "title"] Address: [0x00000210] Size:4Declare [char * "message"] Address: [0x00000220] Size:4Declare [char * "defValue"] Address: [0x0000021C] Size:4Declare [char * "format"] Address: [0x000001FC] Size:4Declare [char * "errMsg"] Address: [0x00000200] Size:4Declare [char * "result"] Address: [0x0000020C] Size:4Set parameter "title" : 184Set parameter "message" : 156Set parameter "defValue" : 148Set parameter "format" : 140Set parameter "errMsg" : 116Set parameter "result" : 536Condition=1ThenCall function "print" with [2] parametersDeclare [char * "$var_char_ptr_175$"] Address: [0x0000023C] Size:4Declare [int "$var_int_176$"] Address: [0x0000022C] Size:4Set parameter "$var_char_ptr_175$" : 96Set parameter "$var_int_176$" : 113print("result=%i \n",113) output:{{result=113 }}Free [char * "$var_char_ptr_175$"] Address: 0000023C Size: 4Free [int "$var_int_176$"] Address: 0000022C Size: 4Begin Switch.Call function "confirm" with [2] parametersDeclare [char * "title"] Address: [0x00000208] Size:4Declare [char * "msg"] Address: [0x00000240] Size:4Set parameter "title" : 84Set parameter "msg" : 72Condition: [confirm($var_char_ptr_109$,$var_char_ptr_111$,)] = 1case 1Call function "prompt" with [2] parametersDeclare [char * "title"] Address: [0x0000023C] Size:4Declare [char * "msg"] Address: [0x0000022C] Size:4Set parameter "title" : 28Set parameter "msg" : 4Break.Break.Free local variable: str Address: [0x00000224] Size:4Free local variable: str2 Address: [0x000001f0] Size:4Free local variable: str3 Address: [0x00000230] Size:4Free local variable: iVal Address: [0x00000218] Size:4Free local variable: global_a Address: [0x000001a0] Size:4Free local variable: global_b Address: [0x000001a4] Size:4Free local variable: global_c Address: [0x000001a8] Size:4Free local variable: global_d Address: [0x000001ac] Size:4Free local variable: global_e Address: [0x000001b0] Size:4Free local variable: global_f Address: [0x000001b4] Size:4Free local variable: global_g Address: [0x000001b8] Size:4Free local variable: global_h Address: [0x000001bc] Size:4Free local variable: global_i Address: [0x000001c0] Size:4Free local variable: global_j Address: [0x000001c4] Size:4Free local variable: global_k Address: [0x000001c8] Size:4Free local variable: global_l Address: [0x000001cc] Size:4Free local variable: global_m Address: [0x000001d0] Size:4Free local variable: global_n Address: [0x000001d4] Size:4Free local variable: global_o Address: [0x000001d8] Size:4Free local variable: global_p Address: [0x000001dc] Size:4Free local variable: global_q Address: [0x000001e0] Size:4Free local variable: global_r Address: [0x000001e4] Size:4Free local variable: global_ch Address: [0x000001e8] Size:4Free local variable: global_str Address: [0x000001ec] Size:4================================ Program End ================================Time consumption: 10.0877237 secThe thread 'vshost.RunParkingWindow' (0x45bc) has exited with code 0 (0x0).The thread '<No Name>' (0x485c) has exited with code 0 (0x0).Free constant variable: $var_char_ptr_121$ Address: [0x00000004]->[0x00000008] Size: 20Free constant variable: $var_char_ptr_119$ Address: [0x0000001c]->[0x00000020] Size: 8Free constant variable: $var_char_ptr_116$ Address: [0x00000028]->[0x0000002c] Size: 16Free constant variable: $var_char_ptr_114$ Address: [0x0000003c]->[0x00000040] Size: 8Free constant variable: $var_char_ptr_111$ Address: [0x00000048]->[0x0000004c] Size: 8Free constant variable: $var_char_ptr_109$ Address: [0x00000054]->[0x00000058] Size: 8Free constant variable: $var_char_ptr_107$ Address: [0x00000060]->[0x00000064] Size: 16Free constant variable: $var_char_ptr_104$ Address: [0x00000074]->[0x00000078] Size: 20Free constant variable: $var_char_ptr_102$ Address: [0x0000008c]->[0x00000090] Size: 4Free constant variable: $var_char_ptr_100$ Address: [0x00000094]->[0x00000098] Size: 4Free constant variable: $var_char_ptr_98$ Address: [0x0000009c]->[0x000000a0] Size: 24Free constant variable: $var_char_ptr_96$ Address: [0x000000b8]->[0x000000bc] Size: 12Free constant variable: $var_char_ptr_93$ Address: [0x000000c8]->[0x000000cc] Size: 12Free constant variable: $var_char_ptr_86$ Address: [0x000000d8]->[0x000000dc] Size: 16Free constant variable: $var_char_ptr_83$ Address: [0x000000ec]->[0x000000f0] Size: 16Free constant variable: $var_char_ptr_80$ Address: [0x00000100]->[0x00000104] Size: 12Free constant variable: $var_char_ptr_77$ Address: [0x00000110]->[0x00000114] Size: 12Free constant variable: $var_char_ptr_73$ Address: [0x00000120]->[0x00000124] Size: 8Free constant variable: $var_char_ptr_59$ Address: [0x0000012c]->[0x00000130] Size: 8Free constant variable: $var_char_ptr_54$ Address: [0x00000138]->[0x0000013c] Size: 16Free constant variable: $var_char_ptr_51$ Address: [0x0000014c]->[0x00000150] Size: 28Free constant variable: $var_char_ptr_45$ Address: [0x0000016c]->[0x00000170] Size: 28Free constant variable: $var_char_ptr_21$ Address: [0x0000018c]->[0x00000190] Size: 16Free function "main" arguments, count: 0Free function "malloc" arguments, count: 1    Free argument "size" Address: [0x00000204] Size: 4Free function "input" arguments, count: 6    Free argument "title" Address: [0x00000210] Size: 4    Free argument "message" Address: [0x00000220] Size: 4    Free argument "defValue" Address: [0x0000021c] Size: 4    Free argument "format" Address: [0x000001fc] Size: 4    Free argument "errMsg" Address: [0x00000200] Size: 4    Free argument "result" Address: [0x0000020c] Size: 4Free function "confirm" arguments, count: 2    Free argument "title" Address: [0x00000208] Size: 4    Free argument "msg" Address: [0x00000240] Size: 4Free function "prompt" arguments, count: 2    Free argument "title" Address: [0x0000023c] Size: 4    Free argument "msg" Address: [0x0000022c] Size: 4Free function "vararg" arguments, count: 1    Free argument "argIdx" Address: [0x00000214] Size: 4Free function "fork2" arguments, count: 2    Free argument "a" Address: [0x000001f8] Size: 4    Free argument "b" Address: [0x000001f4] Size: 4Free function "strlen" arguments, count: 1    Free argument "str" Address: [0x00000228] Size: 4

完整的工程在这里。
All right. Github has been banned! What a fork!