| OLD | NEW |
| 1 // Copyright (c) 2008, Google Inc. | 1 // Copyright (c) 2008, Google Inc. |
| 2 // All rights reserved. | 2 // All rights reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // met: |
| 7 // | 7 // |
| 8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
| 9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
| 10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 // version of stacktrace_x86-inl.h that has heuristic support for | 40 // version of stacktrace_x86-inl.h that has heuristic support for |
| 41 // dealing with FPO, similar to what WinDbg does (see | 41 // dealing with FPO, similar to what WinDbg does (see |
| 42 // http://www.nynaeve.net/?p=97). | 42 // http://www.nynaeve.net/?p=97). |
| 43 // | 43 // |
| 44 // The solution we've ended up doing is to call the undocumented | 44 // The solution we've ended up doing is to call the undocumented |
| 45 // windows function RtlCaptureStackBackTrace, which probably doesn't | 45 // windows function RtlCaptureStackBackTrace, which probably doesn't |
| 46 // work with FPO but at least is fast, and doesn't require a symbol | 46 // work with FPO but at least is fast, and doesn't require a symbol |
| 47 // server. | 47 // server. |
| 48 // | 48 // |
| 49 // This code is inspired by a patch from David Vitek: | 49 // This code is inspired by a patch from David Vitek: |
| 50 // http://code.google.com/p/google-perftools/issues/detail?id=83 | 50 // http://code.google.com/p/gperftools/issues/detail?id=83 |
| 51 | 51 |
| 52 #ifndef BASE_STACKTRACE_WIN32_INL_H_ | 52 #ifndef BASE_STACKTRACE_WIN32_INL_H_ |
| 53 #define BASE_STACKTRACE_WIN32_INL_H_ | 53 #define BASE_STACKTRACE_WIN32_INL_H_ |
| 54 // Note: this file is included into stacktrace.cc more than once. | 54 // Note: this file is included into stacktrace.cc more than once. |
| 55 // Anything that should only be defined once should be here: | 55 // Anything that should only be defined once should be here: |
| 56 | 56 |
| 57 #include "config.h" | 57 #include "config.h" |
| 58 #include <windows.h> // for GetProcAddress and GetModuleHandle | 58 #include <windows.h> // for GetProcAddress and GetModuleHandle |
| 59 #include <assert.h> | 59 #include <assert.h> |
| 60 | 60 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 81 } | 81 } |
| 82 | 82 |
| 83 PERFTOOLS_DLL_DECL int GetStackFrames(void** /* pcs */, | 83 PERFTOOLS_DLL_DECL int GetStackFrames(void** /* pcs */, |
| 84 int* /* sizes */, | 84 int* /* sizes */, |
| 85 int /* max_depth */, | 85 int /* max_depth */, |
| 86 int /* skip_count */) { | 86 int /* skip_count */) { |
| 87 assert(0 == "Not yet implemented"); | 87 assert(0 == "Not yet implemented"); |
| 88 return 0; | 88 return 0; |
| 89 } | 89 } |
| 90 #endif // BASE_STACKTRACE_WIN32_INL_H_ | 90 #endif // BASE_STACKTRACE_WIN32_INL_H_ |
| OLD | NEW |