| 3137 | } |
| 3138 | |
| 3139 | bool WinDebugger::IsStepFiltered(DbgSubprogram* dbgSubprogram, DbgLineData* dbgLineData) |
| 3140 | { |
| 3141 | if (mIsStepIntoSpecific) |
| 3142 | return false; |
| 3143 | |
| 3144 | if (dbgSubprogram->mStepFilterVersion != mDebugManager->mStepFilterVersion) |
| 3145 | { |
| 3146 | String filterName; |
| 3147 | CreateFilterName(filterName, dbgSubprogram); |
| 3148 | dbgSubprogram->PopulateSubprogram(); |
| 3149 | |
| 3150 | bool doDefault = false; |
| 3151 | |
| 3152 | StepFilter* stepFilterPtr; |
| 3153 | if (mDebugManager->mStepFilters.TryGetValue(filterName, &stepFilterPtr)) |
| 3154 | { |
| 3155 | switch (stepFilterPtr->mFilterKind) |
| 3156 | { |
| 3157 | case BfStepFilterKind_Default: |
| 3158 | doDefault = true; |
| 3159 | break; |
| 3160 | case BfStepFilterKind_Filtered: |
| 3161 | dbgSubprogram->mIsStepFiltered = true; |
| 3162 | break; |
| 3163 | case BfStepFilterKind_NotFiltered: |
| 3164 | dbgSubprogram->mIsStepFiltered = false; |
| 3165 | break; |
| 3166 | } |
| 3167 | } |
| 3168 | else |
| 3169 | { |
| 3170 | doDefault = true; |
| 3171 | } |
| 3172 | |
| 3173 | if (doDefault) |
| 3174 | { |
| 3175 | dbgSubprogram->mIsStepFiltered = dbgSubprogram->mIsStepFilteredDefault; |
| 3176 | } |
| 3177 | |
| 3178 | dbgSubprogram->mStepFilterVersion = mDebugManager->mStepFilterVersion; |
| 3179 | } |
| 3180 | |
| 3181 | if (!dbgSubprogram->mIsStepFiltered) |
| 3182 | { |
| 3183 | if (dbgLineData != NULL) |
| 3184 | { |
| 3185 | auto dbgSrcFile = dbgSubprogram->GetLineSrcFile(*dbgLineData); |
| 3186 | if (dbgSrcFile->mStepFilterVersion != mDebugManager->mStepFilterVersion) |
| 3187 | { |
| 3188 | dbgSrcFile->mFileExistKind = dbgSubprogram->mCompileUnit->mDbgModule->CheckSourceFileExist(dbgSrcFile->GetLocalPath()); |
| 3189 | dbgSrcFile->mStepFilterVersion = mDebugManager->mStepFilterVersion; |
| 3190 | } |
| 3191 | |
| 3192 | switch (dbgSrcFile->mFileExistKind) |
| 3193 | { |
| 3194 | case DbgFileExistKind_NotFound: |
| 3195 | return true; |
| 3196 | case DbgFileExistKind_HasOldSourceCommand: |
nothing calls this directly
no test coverage detected