Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: syzygy/refinery/analyzers/stack_frame_analyzer.h

Issue 1475083002: [Refinery] Introduce TypePropagatorAnalyzer - pointer types. (Closed) Base URL: https://github.com/google/syzygy.git@master
Patch Set: Final nit Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 Google Inc. All Rights Reserved. 1 // Copyright 2015 Google Inc. All Rights Reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 13 matching lines...) Expand all
24 #include "syzygy/refinery/symbols/dia_symbol_provider.h" 24 #include "syzygy/refinery/symbols/dia_symbol_provider.h"
25 #include "syzygy/refinery/symbols/symbol_provider.h" 25 #include "syzygy/refinery/symbols/symbol_provider.h"
26 #include "syzygy/refinery/types/type_repository.h" 26 #include "syzygy/refinery/types/type_repository.h"
27 27
28 namespace refinery { 28 namespace refinery {
29 29
30 // The stack frame analyzer populates the process state with information 30 // The stack frame analyzer populates the process state with information
31 // about the contents of stack frames. 31 // about the contents of stack frames.
32 class StackFrameAnalyzer : public Analyzer { 32 class StackFrameAnalyzer : public Analyzer {
33 public: 33 public:
34 explicit StackFrameAnalyzer( 34 StackFrameAnalyzer(scoped_refptr<DiaSymbolProvider> dia_symbol_provider,
35 scoped_refptr<DiaSymbolProvider> dia_symbol_provider, 35 scoped_refptr<SymbolProvider> symbol_provider);
36 scoped_refptr<SymbolProvider> symbol_provider);
37 36
38 const char* name() const override { return kStackFrameAnalyzerName; } 37 const char* name() const override { return kStackFrameAnalyzerName; }
39 38
40 AnalysisResult Analyze(const minidump::Minidump& minidump, 39 AnalysisResult Analyze(const minidump::Minidump& minidump,
41 ProcessState* process_state) override; 40 ProcessState* process_state) override;
42 41
43 private: 42 private:
44 bool AnalyzeFrame(StackFrameRecordPtr frame_record, 43 bool AnalyzeFrame(StackFrameRecordPtr frame_record,
45 ProcessState* process_state); 44 ProcessState* process_state);
46 bool SetSymbolInformation(Address instruction_pointer, 45 bool SetSymbolInformation(Address instruction_pointer,
47 ProcessState* process_state); 46 ProcessState* process_state);
48 47
49 static const char kStackFrameAnalyzerName[]; 48 static const char kStackFrameAnalyzerName[];
50 49
51 // The short term solution for symbols. 50 // The short term solution for symbols.
52 scoped_refptr<DiaSymbolProvider> dia_symbol_provider_; 51 scoped_refptr<DiaSymbolProvider> dia_symbol_provider_;
53 // The longer term solution for symbols. 52 // The longer term solution for symbols.
54 scoped_refptr<SymbolProvider> symbol_provider_; 53 scoped_refptr<SymbolProvider> symbol_provider_;
55 54
56 // Symbol information for the frame being processed. 55 // Symbol information for the frame being processed.
57 base::win::ScopedComPtr<IDiaSession> dia_session_; 56 base::win::ScopedComPtr<IDiaSession> dia_session_;
58 scoped_refptr<TypeNameIndex> typename_index_; 57 scoped_refptr<TypeNameIndex> typename_index_;
59 58
60 DISALLOW_COPY_AND_ASSIGN(StackFrameAnalyzer); 59 DISALLOW_COPY_AND_ASSIGN(StackFrameAnalyzer);
61 }; 60 };
62 61
63 } // namespace refinery 62 } // namespace refinery
64 63
65 #endif // SYZYGY_REFINERY_ANALYZERS_STACK_FRAME_ANALYZER_H_ 64 #endif // SYZYGY_REFINERY_ANALYZERS_STACK_FRAME_ANALYZER_H_
OLDNEW
« no previous file with comments | « syzygy/refinery/analyzers/stack_analysis_unittest.cc ('k') | syzygy/refinery/analyzers/stack_frame_analyzer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698