Changeset 641 in dev for trunk/ab5.0/abdev/compiler_x86


Ignore:
Timestamp:
Jun 15, 2008, 11:59:46 PM (16 years ago)
Author:
dai_9181
Message:

・デバッグトレース時、グローバル領域の終端行でステップインまたはステップアウトしたときにデバッグ情報の取得に失敗して強制終了してしまう不具合を修正。
・グローバル領域のデバッグ実行ができなくなっている不具合を修正。

Location:
trunk/ab5.0/abdev/compiler_x86
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/compiler_x86/Compile_ProcOp.cpp

    r637 r641  
    2424        }
    2525
    26         const UserProc *pBackUserProc;
    27         pBackUserProc = &compiler.GetCompilingUserProc();
    28         compiler.StartGlobalAreaCompile();
    29 
    3026        int BackCp;
    3127        BackCp=cp;
     
    5248        GetGlobalDataForDll();
    5349
    54         compiler.SetCompilingUserProc( pBackUserProc );
    5550        cp=BackCp;
    5651
     
    8176        compiler.codeGenerator.op_ret();
    8277    }
    83     else if( userProc.GetName() == "_System_Call_Destructor_of_GlobalObject" ){
    84 
    85         const UserProc *pBackUserProc;
    86         pBackUserProc = &compiler.GetCompilingUserProc();
    87         compiler.StartGlobalAreaCompile();
    88 
     78    else if( userProc.GetName() == "_System_Call_Destructor_of_GlobalObject" )
     79    {
    8980        compiler.codeGenerator.lexicalScopes.CallDestructorsOfScopeEnd();
    9081
    9182        compiler.SetCompilingUserProc( pBackUserProc );
    92 
    9383
    9484        //ret
     
    213203    else if( userProc.GetName() == "RegisterGlobalRoots"
    214204        && userProc.HasParentClass()
    215         && userProc.GetParentClass().GetName() == "_System_CGarbageCollection" ){
    216 
    217             Compile_AddGlobalRootsForGc();
    218     }
    219     else if( userProc.GetName() == compiler.globalAreaProcName ){
     205        && userProc.GetParentClass().GetName() == "_System_CGarbageCollection" )
     206    {
     207        Compile_AddGlobalRootsForGc();
     208    }
     209    else if( userProc.GetName() == compiler.globalAreaProcName )
     210    {
    220211        ////////////////////////////////////////
    221212        // グローバル領域をコンパイル
     
    223214
    224215        UserProc::pGlobalProc = &userProc;
    225 
    226         const UserProc *pBackUserProc = &compiler.GetCompilingUserProc();
    227         compiler.StartGlobalAreaCompile();
    228216
    229217        int BackCp = cp;
     
    251239        }
    252240
    253         compiler.SetCompilingUserProc( pBackUserProc );
    254241        cp=BackCp;
    255242    }
     
    293280    pUserProc->CompleteCompile();
    294281
    295     extern BOOL bSystemProc;
    296     if(memcmp(pUserProc->GetName().c_str(),"_System_",8)==0) bSystemProc=1;
    297     else bSystemProc=0;
    298 
    299282    extern BOOL bDebugSupportProc;
    300283    if(memcmp(pUserProc->GetName().c_str(),"_DebugSys_",10)==0)
     
    316299    compiler.StartProcedureCompile( pUserProc );
    317300
    318     if(pUserProc->IsSystem()){
     301    if(pUserProc->IsAutoGenerationSystem()){
    319302        ////////////////////
    320303        // 特殊関数
  • trunk/ab5.0/abdev/compiler_x86/Compile_Var.cpp

    r632 r641  
    13291329    }
    13301330}
    1331 void SetVarPtrToReg(int reg,RELATIVE_VAR *pRelativeVar){
     1331void SetVarPtrToReg(int reg,RELATIVE_VAR *pRelativeVar)
     1332{
    13321333    if( reg != REG_EAX ){
    13331334        compiler.errorMessenger.OutputFatalError();
     
    13371338}
    13381339
    1339 bool Compile_AddGlobalRootsForGc(){
     1340bool Compile_AddGlobalRootsForGc()
     1341{
    13401342    const UserProc *pUserProc_AddGlobalRootPtr = GetClassMethod( "_System_CGarbageCollection", "AddGlobalRootPtr" );
    1341     if( !pUserProc_AddGlobalRootPtr ){
     1343    if( !pUserProc_AddGlobalRootPtr )
     1344    {
    13421345        compiler.errorMessenger.Output(3, "_System_CGarbageCollection.AddGlobalRootPtr", -1 );
    13431346        return false;
  • trunk/ab5.0/abdev/compiler_x86/MakePeHdr.cpp

    r640 r641  
    260260    if(pSub_System_GetEip=GetSubHash("_System_GetEip",1)){
    261261        pSub_System_GetEip->Using();
    262         pSub_System_GetEip->ThisIsSystemProc();
     262        pSub_System_GetEip->ThisIsAutoGenerationSystemProc();
    263263    }
    264264
    265265    if(pSub_System_InitDllGlobalVariables=GetSubHash("_System_InitDllGlobalVariables",1)){
    266266        pSub_System_InitDllGlobalVariables->Using();
    267         pSub_System_InitDllGlobalVariables->ThisIsSystemProc();
     267        pSub_System_InitDllGlobalVariables->ThisIsAutoGenerationSystemProc();
    268268    }
    269269
    270270    if(pSub_System_InitStaticLocalVariables=GetSubHash("_System_InitStaticLocalVariables",1)){
    271271        pSub_System_InitStaticLocalVariables->Using();
    272         pSub_System_InitStaticLocalVariables->ThisIsSystemProc();
     272        pSub_System_InitStaticLocalVariables->ThisIsAutoGenerationSystemProc();
    273273    }
    274274
    275275    if(pSub_System_Call_Destructor_of_GlobalObject=GetSubHash("_System_Call_Destructor_of_GlobalObject",1)){
    276276        pSub_System_Call_Destructor_of_GlobalObject->Using();
    277         pSub_System_Call_Destructor_of_GlobalObject->ThisIsSystemProc();
     277        pSub_System_Call_Destructor_of_GlobalObject->ThisIsAutoGenerationSystemProc();
    278278    }
    279279
     
    329329    pSub_allrem=GetSubHash("_allrem");
    330330    pSub_allrem->Using();
    331     pSub_allrem->ThisIsSystemProc();
     331    pSub_allrem->ThisIsAutoGenerationSystemProc();
    332332
    333333    pSub_aullrem=GetSubHash("_aullrem");
    334334    pSub_aullrem->Using();
    335     pSub_aullrem->ThisIsSystemProc();
     335    pSub_aullrem->ThisIsAutoGenerationSystemProc();
    336336
    337337    pSub_allmul=GetSubHash("_allmul");
    338338    pSub_allmul->Using();
    339     pSub_allmul->ThisIsSystemProc();
     339    pSub_allmul->ThisIsAutoGenerationSystemProc();
    340340
    341341    pSub_alldiv=GetSubHash("_alldiv");
    342342    pSub_alldiv->Using();
    343     pSub_alldiv->ThisIsSystemProc();
     343    pSub_alldiv->ThisIsAutoGenerationSystemProc();
    344344
    345345    pSub_aulldiv=GetSubHash("_aulldiv");
    346346    pSub_aulldiv->Using();
    347     pSub_aulldiv->ThisIsSystemProc();
     347    pSub_aulldiv->ThisIsAutoGenerationSystemProc();
    348348
    349349    pSub_allshl=GetSubHash("_allshl");
    350350    pSub_allshl->Using();
    351     pSub_allshl->ThisIsSystemProc();
     351    pSub_allshl->ThisIsAutoGenerationSystemProc();
    352352
    353353    pSub_allshr=GetSubHash("_allshr");
    354354    pSub_allshr->Using();
    355     pSub_allshr->ThisIsSystemProc();
     355    pSub_allshr->ThisIsAutoGenerationSystemProc();
    356356
    357357    pSub_aullshr=GetSubHash("_aullshr");
    358358    pSub_aullshr->Using();
    359     pSub_aullshr->ThisIsSystemProc();
     359    pSub_aullshr->ThisIsAutoGenerationSystemProc();
    360360
    361361    pSub_esp_error=GetSubHash("_esp_error");
Note: See TracChangeset for help on using the changeset viewer.