@@ -318,16 +318,6 @@ func (s *Symbolizer) processCallstack(e *kevent.Kevent) error {
318318 s .mu .Lock ()
319319 defer s .mu .Unlock ()
320320
321- if e .IsCreateFile () && e .IsOpenDisposition () {
322- // for high-volume events decorating
323- // the frames with symbol information
324- // is not viable. For this reason, the
325- // frames are decorated in fast mode.
326- // In this mode, symbolization is skipped
327- s .pushFrames (addrs , e , true , false )
328- return nil
329- }
330-
331321 if e .PS != nil {
332322 var (
333323 addr va.Address
@@ -398,7 +388,7 @@ func (s *Symbolizer) processCallstack(e *kevent.Kevent) error {
398388
399389 // try to resolve addresses from process
400390 // state and PE export directory data
401- s .pushFrames (addrs , e , false , true )
391+ s .pushFrames (addrs , e )
402392
403393 return nil
404394 }
@@ -407,22 +397,21 @@ func (s *Symbolizer) processCallstack(e *kevent.Kevent) error {
407397 if ! ok {
408398 handle , err := windows .OpenProcess (windows .SYNCHRONIZE | windows .PROCESS_QUERY_INFORMATION , false , e .PID )
409399 if err != nil {
410- s .pushFrames (addrs , e , true , true )
400+ s .pushFrames (addrs , e )
411401 return err
412402 }
413403 // initialize symbol handler
414404 opts := uint32 (sys .SymUndname | sys .SymCaseInsensitive | sys .SymAutoPublics | sys .SymOmapFindNearest | sys .SymDeferredLoads )
415405 err = s .r .Initialize (handle , opts )
416406 if err != nil {
417- s .pushFrames (addrs , e , true , true )
407+ s .pushFrames (addrs , e )
418408 return ErrSymInitialize (e .PID )
419409 }
420410 proc = & process {e .PID , handle , time .Now (), 1 }
421411 s .procs [e .PID ] = proc
422412 }
423413
424- // perform full symbolization
425- s .pushFrames (addrs , e , false , true )
414+ s .pushFrames (addrs , e )
426415
427416 proc .keepalive ()
428417
@@ -434,24 +423,20 @@ func (s *Symbolizer) processCallstack(e *kevent.Kevent) error {
434423// addresses where the first element is the
435424// most recent kernel return address that is
436425// pushed last into the event callstack.
437- func (s * Symbolizer ) pushFrames (addrs []va.Address , e * kevent.Kevent , fast , lookupExport bool ) {
426+ func (s * Symbolizer ) pushFrames (addrs []va.Address , e * kevent.Kevent ) {
438427 for i := len (addrs ) - 1 ; i >= 0 ; i -- {
439- e .Callstack .PushFrame (s .produceFrame (addrs [i ], e , fast , lookupExport ))
428+ e .Callstack .PushFrame (s .produceFrame (addrs [i ], e ))
440429 }
441430}
442431
443432// produceFrame fabrics a decorated stack frame.
444433// For return addresses residing in the kernel
445434// address space, the symbolization is always
446- // performed. For userspace address range, if
447- // fast mode is enabled, the frame is solely
448- // decorated with the module name by iterating
449- // through modules contained in the process
450- // state. All symbols are resolved from the
435+ // performed. All symbols are resolved from the
451436// PE export directory entries. If either the
452437// symbol or module are not resolved, then we
453438// fall back to Debug API.
454- func (s * Symbolizer ) produceFrame (addr va.Address , e * kevent.Kevent , fast , lookupExport bool ) kevent.Frame {
439+ func (s * Symbolizer ) produceFrame (addr va.Address , e * kevent.Kevent ) kevent.Frame {
455440 frame := kevent.Frame {PID : e .PID , Addr : addr }
456441 if addr .InSystemRange () {
457442 if s .config .SymbolizeKernelAddresses {
@@ -470,21 +455,6 @@ func (s *Symbolizer) produceFrame(addr va.Address, e *kevent.Kevent, fast, looku
470455 }
471456 }
472457
473- if fast {
474- if e .PS != nil {
475- mod := e .PS .FindModuleByVa (addr )
476- if mod != nil {
477- frame .Module = mod .Name
478- frame .ModuleAddress = mod .BaseAddress
479- }
480- if lookupExport {
481- frame .Symbol = s .resolveSymbolFromExportDirectory (addr , mod )
482- }
483- return frame
484- }
485- return frame
486- }
487-
488458 if e .PS != nil {
489459 mod := e .PS .FindModuleByVa (addr )
490460 // perform lookup against parent modules
0 commit comments