小编Tho*_*ler的帖子

如何构建谷歌breakpad

我完全迷失了如何构建Google的破解版.有一个sln文件,但它取决于一个似乎没有相关sln的库.它似乎使用了一种叫做gyp的东西,我还没弄清楚如何开始工作.我试过了

 python gyp  ..\breakpad\src\client\windows\breakpad_client.gyp
Run Code Online (Sandbox Code Playgroud)

这只是给出以下错误

Traceback (most recent call last):
File "gyp", line 18, in <module>
sys.exit(gyp.main(sys.argv[1:]))
 File "pylib\gyp\__init__.py", line 445, in main
options.circular_check)
 File "pylib\gyp\__init__.py", line 84, in Load
depth, generator_input_info, check, circular_check)
 File "pylib\gyp\input.py", line 2165, in Load
VerifyNoGYPFileCircularDependencies(targets)
 File "pylib\gyp\input.py", line 1429, in VerifyNoGYPFileCircularDependencies
' '.join(bad_files)
gyp.input.CircularException: Some files not reachable, cycle in .gyp file dependency     
graph detected involving some or all of:   
..\breakpad\src\client\windows\sender\crash_report_sender.gyp   
..\breakpad\src\client\windows\h
andler\exception_handler.gyp ..\breakpad\src\client\windows\breakpad_client.gyp           
..\breakpad\src\client\windows\unittests\client_tests.gyp   
..\breakpad\src\client\windows\crash_generation\crash_generation.gyp
Run Code Online (Sandbox Code Playgroud)

这是我无法理解的.我似乎也找不到任何文件.任何帮助,将不胜感激.

gyp google-breakpad

7
推荐指数
1
解决办法
8150
查看次数

在Windows服务中运行cdb时无法下载微软符号

我有一个.NET Windows服务,它调用cdb.exe来分析崩溃转储.我想在需要时使用以下参数自动从http://msdl.microsoft.com下载符号:

-y srv*c:\symbols*http://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)

如果我将应用程序作为控制台应用程序运行,它按预期工作,并为每个转储下载所需的符号.

问题是,当我将应用程序作为Windows服务启动时,符号不会被下载,如果我打开symnoisy,在cdb的输出日志中,我有一个条目,表示在http:/处找不到该符号/msdl.microsoft.com

所以,我使用嗅探器检查了它,有趣的是,当作为服务运行时,没有请求微软符号服务器.

谷歌搜索了一下,我发现我不是唯一一个有这个问题的人,似乎问题是当一个应用程序作为Windows服务运行时,它使用winHTTP库来进行http请求,而不是wininet,我认为是问题的根源:http://support.microsoft.com/kb/238425

所以,我不知道为什么,cdb无法使用winHTTP库连接到ms符号服务器,我需要一种强制cdb默认使用wininet的方法.

任何人都知道这个问题的解决方法?

windows-services symbols windbg wininet winhttp

7
推荐指数
1
解决办法
1142
查看次数

kb对64位进程有什么作用?

我最近在分析一个callstack时犯了一个错误,因为我没想到应用程序是64位的.我使用WinDbg命令kb来显示传递给方法的callstack和参数.

在64位时,参数不通过堆栈传递,而是通过寄存器(RCX,RDX,R8和R9)传递.似乎WinDbg没有或没有完全实现这一点.部分我想这几乎是不可能的,因为寄存器值可能同时发生了变化.

但是,WinDbg帮助仍然kb列为有效命令User-Mode, x64 Processor.因此我的问题是:

kb64位用户模式进程的显示内容是什么?何时/如何输出有用?

debugging 64-bit windbg stack-trace

7
推荐指数
1
解决办法
1785
查看次数

当.NET不在垃圾收集(GC)中时,如何捕获.NET进程的进程内存转储

当捕获转储文件并对其进行分析时(例如在WinDbg中),我经常会收到警告:数据可能不准确,或者命令可能无法访问,因为当收集转储文件时,进程位于GC的中间.

在进行内存分析时,我们经常这样做是因为进程中的内存很高而且内存压力很高,我猜这会强制.NET到GC.

如何在GC期间避免转储?有没有办法知道何时可以安全地捕获转储文件?

.net c# garbage-collection memory-leaks dump

7
推荐指数
1
解决办法
2577
查看次数

我是否需要WOW64转储才能进行GDI句柄分析?

我正在调试潜在的GDI Handle Leak.感谢@Alois Kraus,有一个执行句柄计数的WinDbg脚本.

从我的调试会话中,特别是对于.NET,我发现通常情况下,32位进程的32位转储和64位进程的64位转储更好.

不幸的是,我收到的2个崩溃转储,脚本不起作用.深入研究它,我发现GdiSharedHandleTable null在那些转储中:

0:000> dt ntdll!_PEB GdiSharedHandleTable @$peb
   +0x094 GdiSharedHandleTable : (null) 
Run Code Online (Sandbox Code Playgroud)

现在,在他的网站上,阿洛伊斯提到了

重要提示:如果您在64位操作系统上运行,即使调试32位应用程序,也需要连接64位Windbg!

不幸的是,在32位崩溃转储上使用64位WinDbg并没有帮助.结果仍然相同.

现在这是一个理论:

  • 32位进程中的某些DLL是64位DLL(请参阅Windows Internals 5,第3章,"系统机制",第211页)
  • ntdll 是其中之一(它加载了两次,在64位版本和32位版本中)
  • 虽然GDI对象是用户对象(而不是内核对象),但它们仍然需要由OS绘制等.因此,可能需要在WOW64层中管理它们
  • 这意味着我必须有一个WOW64崩溃转储才能使它工作

所以我的问题是:我在这里很少有案例需要WOW64崩溃转储吗?对我的理论进行更详细的解释会很棒.如果已经在某本书中有一个很好的解释,那么对这一章的引用就足够了.如果我还没有,我会买的.

gdi windbg handle resource-leak

7
推荐指数
1
解决办法
371
查看次数

堆扩展命令失败:无法初始化扩展

在尝试使用!heapWindbg中的扩展来调查转储时,我收到以下错误:

0:000> !heap -s -v -a
SEGMENT HEAP ERROR: failed to initialize the extention
Run Code Online (Sandbox Code Playgroud)

每次使用!heap扩展时都会发生这种情况.
谷歌对此事并不是很有帮助.有没有人知道如何解决这个问题?

windbg dump

7
推荐指数
1
解决办法
1550
查看次数

修复 npm 漏洞

我正在学习 TypeScript 教程。
不幸的是,这些软件包已经过时,我收到了有关漏洞的警告。

我遵循了npm check 和 update package if need 的一系列建议,即:

  • npm audit fix
  • npm audit fix --force
  • npm update

npm audit说还剩下24个漏洞。
但上述命令都无法修复它们。

npm outdated结果没有输出。

易受攻击的软件包是:

ansi-regex
glob-parent
node-forge
nth-check
postcss
Run Code Online (Sandbox Code Playgroud)

我实际上不知道为什么它们是我项目的一部分。我的 里没有它们package.json

修复这些漏洞的后续步骤是什么?

以下是我尝试过的。

dependencies node.js dependency-tree npm-audit npm-vulnerabilities

7
推荐指数
1
解决办法
4547
查看次数

将BigDecimal转换为String时如何保留尾随零

我必须将一个BigDecimal值(例如2.1200,来自数据库)转换为字符串.当我使用toString()or或toPlainString()BigDecimal,它只打印值2.12而不是尾随零.

如何在BigDecimal不丢失尾随零的情况下将字符串转换为字符串?

java bigdecimal

6
推荐指数
1
解决办法
6239
查看次数

ntdll模块在windbg中无法正确加载,但为什么?

之前我曾经使用windbg进行用户模式调试,但我怀疑我对我的系统做了一些事情,因为我不记得使用例如扩展命令!堆之前有问题.

我可以清楚地看到ntdll是一个加载的模块:

77760000 778e0000   ntdll      (pdb symbols)          C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\sym\wntdll.pdb\FA9C48F9C11D4E0894B8970DECD92C972\wntdll.pdb

0:001> lmvm ntdll
start    end        module name
77760000 778e0000   ntdll      (pdb symbols)          C:\Program Files     (x86)\Windows Kits\8.1\Debuggers\x86\sym\wntdll.pdb    \FA9C48F9C11D4E0894B8970DECD92C972\wntdll.pdb
    Loaded symbol image file: C:\Windows\SysWOW64\ntdll.dll
    Image path: C:\Windows\SysWOW64\ntdll.dll
    Image name: ntdll.dll
    Timestamp:        Wed Jul 15 13:53:36 2015 (55A69E20)
    CheckSum:         00142A8B
    ImageSize:        00180000
    File version:     6.1.7601.18933
    Product version:  6.1.7601.18933
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0409.04b0
    CompanyName:      Microsoft Corporation
    ProductName:      Microsoft® …
Run Code Online (Sandbox Code Playgroud)

windows debugging windbg

6
推荐指数
1
解决办法
5270
查看次数

我在哪里可以获得Windows 10 IoT的SOS?

我有一个在Raspberry Pi 2,Windows 10 IoT上运行的.NET Universal App的转储:

0:000> vertarget
Windows 10 Version 10240 MP (4 procs) Free ARM (NT) Thumb-2
Product: WinNt, suite: SingleUserTS
Built by: 10.0.10240.16384 (th1.150709-1700)
Run Code Online (Sandbox Code Playgroud)

我看到它coreclr像之前使用的Silverlight一样.

0:000> lm vm coreclr
start    end        module name
6e430000 6e7fd000   coreclr    (export symbols)       coreclr.dll
    Loaded symbol image file: coreclr.dll
    ...
    Timestamp:        Thu Jul 16 21:37:39 2015 (55A88693)
    ...
    File version:     4.6.23117.0
    Product version:  4.0.23117.0
Run Code Online (Sandbox Code Playgroud)

执行a !analyze -v不会自动下载SOS.

加载我在PC上找到的SOS Silverlight版本表示版本错误:

0:000> .load C:\Program Files\Microsoft Silverlight\5.1.20513.0\sos.dll

0:000> !threads
The version …
Run Code Online (Sandbox Code Playgroud)

c# windbg sos coreclr windows-10-iot-core

6
推荐指数
1
解决办法
594
查看次数