-
Notifications
You must be signed in to change notification settings - Fork 264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
automatically retrieve symbols from MS symbol server #143
Comments
From bruen...@google.com on January 25, 2011 14:49:02 for symbol servers:
Summary: [windows] improve winsyms.c and drsyms container case |
From bruen...@google.com on April 26, 2011 07:49:19 to get symbol server support working in-process, need to hook priv kernel32's GetModuleFileName. note that the symsrv dll goes and loads over 45 libraries so maybe we don't really want it in-process: xref sideline options (DRi#44). could also have a separate step that runs a separate process to go and cache symbols for all the main libs on the system, along w/ any in recent results.txt files, and have frontend run it. xref issue #290 : should perhaps put in sym+offset so we can tell how wrong the callstacks are. the differences between having private syms and not makes it difficult to have default suppressions. |
From bruen...@google.com on April 26, 2011 07:54:04 I should mention that for now, locally, I've been retrieving private syms w/ windbg (need them for debugging anyway) and then pointing Dr. Memory at them via _NT_SYMBOL_PATH |
From bruen...@google.com on April 26, 2011 08:15:12 Owner: bruen...@google.com |
From bruen...@google.com on May 06, 2011 13:01:38 we may want symbol store features for syscall handling: issue #388 |
From timurrrr@google.com on May 26, 2011 13:47:53 One of the possible solutions:
The remaining DLLs are only needed for the reports/suppression matching and both things can be done at the end/postprocess. |
From bruen...@google.com on May 26, 2011 23:01:57 symbols are needed for more than error reports: static CRT is not uncommon on Windows and symbols are needed to find malloc & co. for such modules Dr. Memory originally used a postprocess model, and still does on Linux and cygwin. It is messy wrt child processes. Much cleaner to have online symbol access, except when the address space fills up, when sideline seems the best way to go. Sideline can also accommodate "online" symsrv. |
From bruen...@google.com on August 13, 2012 20:51:42 now that we have the drsyms exension as part of DR, some of the features here are on the DR tracker. packing modules is DRi#449. symbol store support is DRi#450. so I'm limiting this issue to covering just the part about having Dr. Memory automatically retrieve symbols from the MS symbol server. Summary: automatically retrieve symbols from MS symbol server |
From bruen...@google.com on August 13, 2012 21:19:51 /MDd support is what's driving this. pasting in my notes: ** TODO (issue #143): auto-download MS symbols for msvc* and system libs xref issue #143 and issue #388 which have some discussion of auto-downloading for part A and part C we would like msvcrt and msvcpt symbols for simplest xref DRi#450: drsyms windows symbol store support but, we can use hacky solutions for part A, and for part C we can just once we have the symsrv in place we can use it to get system lib syms which OTOH, implementing the issue #607 hack solns requires extra code at runtime: is that |
From bruen...@google.com on August 14, 2012 07:42:28 forgot to include these: *** TODO create symsrv.yes file to avoid license prompt |
From rnk@google.com on August 15, 2012 14:39:22 I experimented a bit with dbghelp and symsrv. I wrote cmake code to copy symsrv into the build dir and package it, but I haven't yet tested that I can ship that package to a clean system and run with it. The SymSrv* API is a little difficult to use. I think I can figure out the calls that I need to make to fetch symbols, but it might be fragile. I'm thinking that the most robust way to fetch symbols is to call SymSetSearchPath (or set _NT_SYMBOL_PATH in the environment) and then use SymLoadModule64 to fetch the symbols. This approach is very simple, but it's relying on a non-obvious side effect. How should we communicate the list of modules without pdbs to the frontend? From comment 9, it sounds like we're leaning towards fetching all modules that didn't have pdbs at the end of execution by default. I propose that we store these paths in the a separate file in the same directory. The frontend can compute the path for this file from the results.txt path that it currently retrieves. It will then iterate this file, which should be short, and fetch syms for each module. Owner: rnk@google.com |
From bruen...@google.com on August 16, 2012 11:36:54
this is what I was trying before when I hit the private loader issues, so I've never directly looked at the symsrv API's interestingly, while the 6.3 symchk uses symsrv.dll, the 6.12 version does NOT the rest of the plan sounds good. we should pop up the notepad w/ results.txt before the symbol download. for those on a console perhaps a message about loading so they know what it's doing? could potentially fork off a process to do it while giving them their prompt back. |
From derek.br...@gmail.com on December 10, 2010 17:57:59
PR 463897
several features to improve winsyms.c, the Windows addr2line app that uses
dbghelp.dll from PR 463895:
have DrMem log all .dll files opened and then add those dirs to search path?
load symbols for all its modules, so we could avoid having to load them
one by one or to guess their paths. but still have to handle modules
loaded later. and no guarantee process still alive by time sideline
symbol processor accesses it.
today we will probably fail if passed two .exe's (non-relocatable). we
should query the address space to find more appropriate places to load,
and potentially unload existing modules (they'll be re-loaded on demand
later).
export symbols?
Original issue: http://code.google.com/p/drmemory/issues/detail?id=143
The text was updated successfully, but these errors were encountered: