jenix21 / dev_wiki

0 stars 0 forks source link

WinDBG #7

Open jenix21 opened 4 years ago

jenix21 commented 4 years ago

Sybmol

경로 설정

File > Symbol File Path 지정 (아래 reload 체크)

srv*c:\symbols_test*http://msdl.microsoft.com/download/symbols;srv*d:\symbols_test*http://storage.whale.navercorp.com/pgo_symbol_64

직접 다운로드

symchk 로 특정 파일에 대한 심볼을 받을 수 있음.

D:\>"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" "C:\Program Files (x86)\Naver\Naver Whale\Application\2.8.105.22\whale.dll" /s srv*d:\symbols_test*http://storage.whale.navercorp.com/pgo_symbol_64

SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1

D:\>"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" "C:\Program Files (x86)\Naver\Naver Whale\Application\2.8.105.22\whale.exe" /s srv*d:\symbols_test*http://storage.whale.navercorp.com/pgo_symbol_64

WinDgb

Breakpoint

0:000> dx -r1 ((whale!gfx::ImageSkia *)0xef4b3fe968)
((whale!gfx::ImageSkia *)0xef4b3fe968)                 : 0xef4b3fe968 [Type: gfx::ImageSkia *]
    [+0x000] storage_         : [0x28ffa5c8] 0x244c2a22140 {...} [Type: scoped_refptr<gfx::internal::ImageSkiaStorage>]
0:000> dx -r1 (*((whale!scoped_refptr<gfx::internal::ImageSkiaStorage> *)0xef4b3fe968))
(*((whale!scoped_refptr<gfx::internal::ImageSkiaStorage> *)0xef4b3fe968))                 : [0x28ffa5c8] 0x244c2a22140 {...} [Type: scoped_refptr<gfx::internal::ImageSkiaStorage>]
    [<Raw View>]     [Type: scoped_refptr<gfx::internal::ImageSkiaStorage>]
    Ptr              : 0x244c2a22140 [Type: gfx::internal::ImageSkiaStorage *]
    RefCount         : 0x28ffa5c8 [Type: unsigned int]
0:000> dx -r1 -nv (*((whale!scoped_refptr<gfx::internal::ImageSkiaStorage> *)0xef4b3fe968))
(*((whale!scoped_refptr<gfx::internal::ImageSkiaStorage> *)0xef4b3fe968))                 : [0x28ffa5c8] 0x244c2a22140 {...} [Type: scoped_refptr<gfx::internal::ImageSkiaStorage>]
    [+0x000] ptr_             : 0x244c2a22140 [Type: gfx::internal::ImageSkiaStorage *]
0:000> dx -r1 ((whale!gfx::internal::ImageSkiaStorage *)0x244c2a22140)
((whale!gfx::internal::ImageSkiaStorage *)0x244c2a22140)                 : 0x244c2a22140 [Type: gfx::internal::ImageSkiaStorage * (derived from gfx::internal::ImageSkiaStorage *)]
    [+0x008] ref_count_       [Type: base::AtomicRefCount]
    kRefCountPreference : kStartRefCountFromZeroTag (0) [Type: base::subtle::StartRefCountFromZeroTag]
    [+0x010] image_reps_      : { size=1 } [Type: std::__1::vector<gfx::ImageSkiaRep,std::__1::allocator<gfx::ImageSkiaRep>>]
    [+0x028] source_          : empty [Type: std::__1::unique_ptr<gfx::ImageSkiaSource,std::__1::default_delete<gfx::ImageSkiaSource>>]
    [+0x030] size_            : (1017, 618) [Type: gfx::Size]
    [+0x038] read_only_       : false [Type: bool]
    [+0x039] sequence_checker_ [Type: base::SequenceChecker]
0:000> dx -r1 (*((whale!std::__1::vector<gfx::ImageSkiaRep,std::__1::allocator<gfx::ImageSkiaRep>> *)0x244c2a22150))
Error: Unable to find type 'std::__1::vector<gfx::ImageSkiaRep,std::__1::allocator<gfx::ImageSkiaRep> > *' for cast.
0:000> ba w4 0x244c2a22150

Find symbol

Symbol load

참고 https://infoages.com/1146 http://www.windbg.xyz/windbg/article/103-ba-Break-on-Access-in-WinDbg https://darpangs.tistory.com/entry/%EB%8B%A4%EB%A5%B8-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90-%EC%82%BD%EC%9E%85%EB%90%9C-DLL-%EB%94%94%EB%B2%84%EA%B9%85-%EC%98%88%EC%A0%9C https://laigo.kr/338 https://darpangs.tistory.com/entry/%EB%8B%A4%EB%A5%B8-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90-%EC%82%BD%EC%9E%85%EB%90%9C-DLL-%EB%94%94%EB%B2%84%EA%B9%85-%EC%98%88%EC%A0%9C https://ychcom.tistory.com/entry/WinDbg-%EB%AA%85%EB%A0%B9