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

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

Location:
trunk/ab5.0/abdev/BasicCompiler_Common
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/BasicCompiler.h

    r622 r641  
    2828//デバッグ
    2929BOOL bDebugSupportProc;
    30 BOOL bSystemProc;
    3130DWORD dwStepRun;
    3231double width_ratio_VarList=0.3;
  • trunk/ab5.0/abdev/BasicCompiler_Common/Compile.cpp

    r637 r641  
    747747            }
    748748
    749             compiler.codeGenerator.NextSourceLine( SourceCodePosition( compiler.GetCurrentRelationalObjectModuleIndexForSource(), cp ) );
     749            if( basbuf[cp] != '\0' )
     750            {
     751                compiler.codeGenerator.NextSourceLine(
     752                    SourceCodePosition( compiler.GetCurrentRelationalObjectModuleIndexForSource(), cp ),
     753                    compiler.GetCompilingUserProc().IsSystem()
     754                );
     755            }
    750756
    751757            if(Command[0]==1){
  • trunk/ab5.0/abdev/BasicCompiler_Common/Debug.cpp

    r637 r641  
    262262    SendDlgItemMessage(hMainDlg,IDC_DEBUGLIST,EM_REPLACESEL,0,(LPARAM)buffer);
    263263}
    264 UserProc *GetSubFromObp(ULONG_PTR pos){
     264UserProc *GetSubFromObp(ULONG_PTR pos)
     265{
    265266    compiler.GetObjectModule().meta.GetUserProcs().Iterator_Reset();
    266267    while( compiler.GetObjectModule().meta.GetUserProcs().Iterator_HasNext() )
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/CodeGenerator.h

    r637 r641  
    241241    }
    242242
    243     void NextSourceLine( const SourceCodePosition &sourceCodePosition )
    244     {
    245         pNativeCode->NextSourceLine( sourceCodePosition );
     243    void NextSourceLine( const SourceCodePosition &sourceCodePosition, bool isInSystemProc )
     244    {
     245        pNativeCode->NextSourceLine( sourceCodePosition, isInSystemProc );
    246246    }
    247247
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/Compiler.cpp

    r637 r641  
    402402bool Compiler::IsGlobalAreaCompiling()
    403403{
    404     return ( pCompilingUserProc == NULL );
     404    if( pCompilingUserProc == NULL )
     405    {
     406        return true;
     407    }
     408    return ( pCompilingUserProc->GetName() == this->globalAreaProcName );
    405409}
    406410bool Compiler::IsLocalAreaCompiling()
    407411{
    408     return ( pCompilingUserProc != NULL );
     412    return !IsGlobalAreaCompiling();
    409413}
    410414const UserProc &Compiler::GetCompilingUserProc()
    411415{
    412     if( !this->IsGlobalAreaCompiling() )
    413     {
    414         return *pCompilingUserProc;
     416    if( pCompilingUserProc == NULL )
     417    {
     418        _ASSERTE( false );
     419        throw;
     420    }
     421    return *pCompilingUserProc;
     422}
     423
     424bool Compiler::IsCompilingClass()
     425{
     426    return ( pCompilingClass != NULL );
     427}
     428const CClass &Compiler::GetCompilingClass()
     429{
     430    if( this->IsCompilingClass() )
     431    {
     432        return *pCompilingClass;
    415433    }
    416434
    417435    throw;
    418436}
    419 
    420 bool Compiler::IsCompilingClass()
    421 {
    422     return ( pCompilingClass != NULL );
    423 }
    424 const CClass &Compiler::GetCompilingClass()
    425 {
    426     if( this->IsCompilingClass() )
    427     {
    428         return *pCompilingClass;
    429     }
    430 
    431     throw;
    432 }
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Procedure.cpp

    r637 r641  
    915915    importedNamespaces.clear();
    916916
    917     compiler.globalAreaProcName = "_System_GlobalArea_" + compiler.GetModuleName();
     917    compiler.globalAreaProcName = "_GlobalArea_" + compiler.GetModuleName();
    918918    sprintf(temporary,"%c%c%s()",1,ESC_SUB,compiler.globalAreaProcName.c_str());
    919919    UserProc *pUserProc = ParseUserProc( namespaceScopes, importedNamespaces, temporary, 0, false, NULL, false );
Note: See TracChangeset for help on using the changeset viewer.