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

Side by Side Diff: base/dynamic_link_dbghelp.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months 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
« no previous file with comments | « base/dual_interface_switch.h ('k') | base/dynamic_link_dbghelp.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2003-2009 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (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
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 // ========================================================================
15 //
16 // dynamic loading of dbghelp dll functions
17 //
18
19 #ifndef OMAHA_COMMON_DYNAMIC_LINK_DBGHELP_H_
20 #define OMAHA_COMMON_DYNAMIC_LINK_DBGHELP_H_
21
22 #include <dbghelp.h>
23
24 namespace omaha {
25
26 class Dbghelp {
27 public:
28 static BOOL (CALLBACK *SymInitialize)(HANDLE, PCSTR, BOOL);
29 static BOOL (CALLBACK *SymCleanup)(HANDLE);
30 static BOOL (CALLBACK *SymEnumSymbols)(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATES YMBOLS_CALLBACK, PVOID);
31 static DWORD (CALLBACK *SymSetOptions)(DWORD);
32 static BOOL (CALLBACK *SymSetContext)(HANDLE, PIMAGEHLP_STACK_FRAME, PIMAGEHLP _CONTEXT);
33 static BOOL (CALLBACK *SymGetLineFromAddr)(HANDLE, DWORD, PDWORD, PIMAGEHLP_LI NE);
34 static BOOL (CALLBACK *SymGetLineFromAddr64)(HANDLE, DWORD64, PDWORD, PIMAGEHL P_LINE64);
35 static BOOL (CALLBACK *SymFromAddr)(HANDLE, DWORD64, PDWORD64, PSYMBOL_INFO);
36 static BOOL (CALLBACK *StackWalk64)(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVO ID, PREAD_PROCESS_MEMORY_ROUTINE64,
37 PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_A DDRESS_ROUTINE64);
38 static BOOL (CALLBACK *StackWalk)(DWORD, HANDLE, HANDLE, LPSTACKFRAME, PVOID, PREAD_PROCESS_MEMORY_ROUTINE,
39 PFUNCTION_TABLE_ACCESS_ROUTINE, PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRE SS_ROUTINE);
40 static PVOID (CALLBACK *SymFunctionTableAccess64)(HANDLE, DWORD64);
41 static PVOID (CALLBACK *SymFunctionTableAccess)(HANDLE, DWORD);
42 static DWORD64 (CALLBACK *SymGetModuleBase64)(HANDLE, DWORD64);
43 static DWORD64 (CALLBACK *SymGetModuleBase)(HANDLE, DWORD);
44 static BOOL (CALLBACK *SymGetTypeInfo)(HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL _TYPE_INFO, PVOID);
45 static BOOL (CALLBACK *MiniDumpWriteDump)(HANDLE, DWORD, HANDLE, MINIDUMP_TYPE , PMINIDUMP_EXCEPTION_INFORMATION,
46 PMINIDUMP_USER_STREAM_INFORMATION, PMINIDUMP_CALLBACK_INFORMATION);
47
48 static HRESULT Load();
49 static void Unload();
50 static bool Loaded() { return (loaded_state_ == LOAD_SUCCEEDED && library_ != NULL); }
51
52 private:
53 // If we tried to load and failed, do not try again.
54 static enum LoadedState {NOT_LOADED, LOAD_FAILED, LOAD_SUCCEEDED};
55
56 static LoadedState loaded_state_;
57 static HINSTANCE library_;
58
59 static void Clear();
60
61 // wrapper around GetProcAddress()
62 template <typename T>
63 static bool GPA(const char * function_name, T& function_pointer);
64
65 DISALLOW_EVIL_CONSTRUCTORS(Dbghelp);
66 };
67
68 } // namespace omaha
69
70 #endif // OMAHA_COMMON_DYNAMIC_LINK_DBGHELP_H_
OLDNEW
« no previous file with comments | « base/dual_interface_switch.h ('k') | base/dynamic_link_dbghelp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698