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


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

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

Location:
trunk/ab5.0/abdev/ab_common
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h

    r640 r641  
    244244        return sourceLines;
    245245    }
    246     void NextSourceLine( const SourceCodePosition &sourceCodePosition );
     246    void NextSourceLine( const SourceCodePosition &sourceCodePosition, bool isInSystemProc );
    247247
    248248    void ResetDataSectionBaseOffset( long dataSectionBaseOffset );
  • trunk/ab5.0/abdev/ab_common/include/Lexical/Procedure.h

    r640 r641  
    136136    // 各種フラグ
    137137    bool isExport;
    138     mutable bool isSystem;
     138    mutable bool isAutoGenerationSystem;
    139139    mutable bool isAutoGeneration;
    140140    mutable bool isCompiled;
     
    180180        ar & BOOST_SERIALIZATION_NVP( realSecondParmNum );
    181181        ar & BOOST_SERIALIZATION_NVP( isExport );
    182         ar & BOOST_SERIALIZATION_NVP( isSystem );
     182        ar & BOOST_SERIALIZATION_NVP( isAutoGenerationSystem );
    183183        ar & BOOST_SERIALIZATION_NVP( isAutoGeneration );
    184184        ar & BOOST_SERIALIZATION_NVP( isCompiled );
     
    275275        return isExport;
    276276    }
    277     void ThisIsSystemProc() const
    278     {
    279         isSystem = true;
    280     }
    281     bool IsSystem() const
    282     {
    283         return isSystem;
     277    void ThisIsAutoGenerationSystemProc() const
     278    {
     279        isAutoGenerationSystem = true;
     280    }
     281    bool IsAutoGenerationSystem() const
     282    {
     283        return isAutoGenerationSystem;
    284284    }
    285285    void ThisIsAutoGenerationProc() const
     
    291291        return isAutoGeneration;
    292292    }
     293    bool IsSystem() const;
    293294    void CompleteCompile() const
    294295    {
  • trunk/ab5.0/abdev/ab_common/src/Lexical/NativeCode.cpp

    r640 r641  
    161161}
    162162
    163 void NativeCode::NextSourceLine( const SourceCodePosition &sourceCodePosition )
     163void NativeCode::NextSourceLine( const SourceCodePosition &sourceCodePosition, bool isInSystemProc )
    164164{
    165165    if( sourceLines.size() )
     
    173173
    174174    extern BOOL bDebugSupportProc;
    175     extern BOOL bSystemProc;
    176175    DWORD sourceLineType = 0;
    177176    if( bDebugSupportProc )
     
    179178        sourceLineType |= CODETYPE_DEBUGPROC;
    180179    }
    181     if( bSystemProc )
     180    if( isInSystemProc )
    182181    {
    183182        sourceLineType |= CODETYPE_SYSTEMPROC;
  • trunk/ab5.0/abdev/ab_common/src/Lexical/Procedure.cpp

    r640 r641  
    4444    , realSecondParmNum( 1 )
    4545    , isExport( isExport )
    46     , isSystem( false )
     46    , isAutoGenerationSystem( false )
    4747    , isAutoGeneration( false )
    4848    , isCompiled( false )
     
    6565    , realSecondParmNum( userProc.realSecondParmNum )
    6666    , isExport( userProc.isExport )
    67     , isSystem( userProc.isSystem )
     67    , isAutoGenerationSystem( userProc.isAutoGenerationSystem )
    6868    , isAutoGeneration( userProc.isAutoGeneration )
    6969    , isCompiled( false )
     
    138138    return false;
    139139}
     140bool UserProc::IsSystem() const
     141{
     142    // "_System_" を名前の先頭に含む関数
     143    if( memcmp( this->GetName().c_str(), "_System_", 8 ) == 0 )
     144    {
     145        return true;
     146    }
     147
     148    // "_System_" を名前の先頭に含むクラスのメソッド
     149    if( this->HasParentClass() )
     150    {
     151        if( memcmp( this->GetParentClass().GetName().c_str(), "_System_", 8 ) == 0 )
     152        {
     153            return true;
     154        }
     155    }
     156
     157    return false;
     158}
    140159const NamespaceScopes &UserProc::GetNamespaceScopes() const
    141160{
  • trunk/ab5.0/abdev/ab_common/src/Lexical/Source.cpp

    r637 r641  
    900900    }
    901901
    902     if( includedFilesRelation.GetLineCounts() < i2 )
     902    if( includedFilesRelation.GetLineCounts() <= i2 )
    903903    {
    904904        //Jenga::Throw( "BasicSource::GetLineInfoメソッドで不正な行の情報を取得しようとした" );
Note: See TracChangeset for help on using the changeset viewer.