标签: gflags

GFlags设置为捕获堆损坏(除了页面堆)?

在一个生产站点上,我们的应用程序(*)反复崩溃,但不可重现.分析崩溃转储清楚地表明它是一个堆损坏:崩溃位于不同的位置,但始终访问kernel32!HeapFree/ 内部的违规ntdll!RtlpLowFragHeapFree.Win Dbg !analyze -v还报告堆损坏.

到目前为止我们尝试的是使用GFlags选项Page Heap运行应用程序.问题是页面堆的内存开销使应用程序不再运行(达到32位进程的虚拟内存限制).

所以,我们不能使用Page Heap.添加哪些其他标志对我们要么有用

  • 在腐败网站上崩溃
  • 或者至少可以从崩溃转储中获取更多信息,这些信息最终将在我们崩溃时生成HeapFree

我们正在尝试标志:

希望下一个崩溃转储包含更多关于出错的信息.

我考虑过这些标志,但暂时将它们排除在外:

我(也)遇到的一个问题是,我不确定这些标志在发生内存损坏时如何起作用.当某些内容写入保护页面时,页面堆显然会产生访问冲突,但其他标志如何运行?

我是否必须使用Application Verifier运行应用程序以获取其他标志以帮助您?或者在检查代码检测到某些内容时会引发异常?

这些标志的哪种组合最有意义,以便应用程序仍可以在生产中以良好的性能和内存消耗运行?


(*):它是工业自动化中的32位Windows桌面应用程序.在这种情况下运行在Win7 64bit上(它在许多其他站点上运行得很好).

windows windbg visual-c++ gflags heap-corruption

11
推荐指数
2
解决办法
1万
查看次数

我无法准确理解JavaScript的方法string.match(regexp)的sg标志是如何工作的

在"JavaScript:The Good Parts"一书中,它解释了string.match(regexp)如下方法:

match方法匹配字符串和正则表达式.它是如何做到这取决于g标志.如果没有g标志,那么调用string .match(regexp)的结果与调用regexp .exec(string)相同.但是,如果正则表达式具有g标志,则它会生成所有匹配的数组,但不包括捕获组:

然后这本书提供了代码示例:

var text = '<html><body bgcolor=linen><p>This is <b>bold<\/b>!<\/p><\/body><\/html>';
var tags = /[^<>]+|<(\/?)([A-Za-z]+)([^<>]*)>/g;
var a, i;
a = text.match(tags);
for (i = 0; i < a.length; i += 1) {
    document.writeln(('// [' + i + '] ' + a[i]).entityify());
}
// The result is
// [0] <html>
// [1] <body bgcolor=linen>
// [2] <p>
// [3] This is
// [4] <b>
// [5] bold
// [6] </b>
// [7] !
// [8] </p> …
Run Code Online (Sandbox Code Playgroud)

javascript regex string match gflags

8
推荐指数
1
解决办法
513
查看次数

在glog config.h,gflags/gflags.h上,Mojave + Xcode 10构建失败

我正在Mac OS Mojave和Xcode 10上测试React Native 0.56.0-rc.2.

运行:

react-native init TestProject --version="0.56.0-rc.2"
cd TestProject
npm run start
react-native run-ios
Run Code Online (Sandbox Code Playgroud)

这产生了一些长期错误.

输入Xcode让我失败config.h了glog,我发现可以手动构建:

cd ./node_modules/react-native/third-party/glog-0.3.4
./configure && make && make install
Run Code Online (Sandbox Code Playgroud)

通过那个阶段,但让我接下来的另一个问题

(...)/node_modules/react-native/third-party/glog-0.3.4/src/glog/logging.h:85:10:
'gflags/gflags.h' file not found
Run Code Online (Sandbox Code Playgroud)

我无法在Google或Stack Overflow上找到任何与RN相关的内容,只能参考其他软件包以及在基于Debian的系统上安装这些软件包的说明.

这是一个已知的问题?

gflags glog react-native

7
推荐指数
2
解决办法
4835
查看次数

GAE不导入gflags

我试图让oauth在Google App Engine(GAE)上工作,但是我无法导入OAuth2Decorator,因为它试图导入gflags并失败.

在命令行中,我已经运行help('modules')并且列出了gflags,并且我已经运行了import os+ import gflags+ print os.path.dirname(gflags.__file__)并且已经收到了/Library/Python/2.7/site-packages/python_gflags-2.0-py2.7.egg.

在GAE Dev Console我跑了:

import sys
import os

try:
  import webapp2
  import httplib2
  from oauth2client.appengine import OAuth2Decorator 

except ImportError, e:
  print("The import failed!")
  print(e)
Run Code Online (Sandbox Code Playgroud)

并收到:

The import failed!
No module named gflags
Run Code Online (Sandbox Code Playgroud)

gflags是由导入的from oauth2client.appengine import OAuth2Decorator,但gflags每次运行代码时GAE都无法导入.

我不确定它有什么不同,但我正在运行Mac OS 10.7.5和python 2.7.1

google-app-engine gflags oauth-2.0 python-2.7 google-api-python-client

6
推荐指数
2
解决办法
3103
查看次数

Global Flags的注册表项(gflags)

我正在尝试删除标志"使用DLL启用堆标记"时出现错误,调试工具GFlags用于所谓的"图像":我正在调试的应用程序.

我得到" 无法保存注册表错误5 ".但是对于其他"启用堆..."标志没有问题,它们可以打开和关闭.我尝试以管理员身份启动该实用程序,但这不会改变任何内容.

所以我试图弄清楚应该手动更改哪些注册表设置以使事情恢复正常,但是我似乎没有找到关于Windows全局标志的正确注册表项.

或者我可以删除与我的应用程序相关的任何全局标志.

任何的想法 ?

我试图找到FLG_HEAP_PAGE_ALLOCS在注册表中,这是更普遍的标志的符号名称"启用页堆"为说,这里在MSDN.但没有成功.

registry sysinternals gflags

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

构建库 OSX 时找不到“gflags/gflags.h”

我正在尝试构建包含的库,'gflags/gflags.h'但无法找到它。

我用自制软件安装了 gflags 和 glog。

CMake 输出说:

-- Found installed version of gflags: /usr/local/lib/cmake/gflags
-- Detected gflags version: 2.2.2
-- Found Gflags: /usr/local/include
-- Found Glog: /usr/local/include
Run Code Online (Sandbox Code Playgroud)

运行时"cmake"一切正常,没有错误。但是当我运行时"make install"它无法构建并且它说"fatal error: 'gflags/gflags.h' file not found"

如何在 OsX 中构建需要 gflags 的库?

c++ macos cmake gflags glog

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

如何从DLL堆标记中受益?

如何使用GFlags设置并从中受益?通过DLL启用堆标记

我知道如何激活进程的设置,但我没有!heap -t在WinDbg 的输出中找到有用的信息.我期待这样的输出:

0:000> !heap -t
Index   Address   Allocated by 
1:      005c0000  MyDll.dll
2:      006b0000  AnotherDll.dll
Run Code Online (Sandbox Code Playgroud)

这样我就可以识别哪个堆由哪个DLL创建,然后识别内存泄漏的来源.

这是对"DLL堆标记"一词的误解,还是需要更多命令来获得所需的结果?

我的研究到目前为止:

  • 我搜索了关于这个主题的教程,但我找不到详细的描述
  • 我读过WinDbg,.hh !heap但它的细节也没有详细说明.标签仅用于!heap -b

windbg gflags

5
推荐指数
1
解决办法
987
查看次数

为什么gflags无法启动,当我启动时它会立即飞溅并立即退出

当我在Windows 7上运行gflags时,它应该提供UI,但事实并非如此.我看到一个简短的黑色命令窗口然后退出并且gflags UI永远不会出现.它可能在命令提示符下工作但我真的想通过UI使用它.

debugging windbg windows-7 gflags

5
推荐指数
1
解决办法
672
查看次数

gflags对话框无法打开

我目前正在尝试调试我的一个应用程序中的内存泄漏(是的,那个废话再次......),并试图设置gflags设置,但对话框将无法打开.我安装了Windows 10 SDK(我在Windows 7 x64上),但它说它在Win7上也适用于描述,那为什么我根本不能使用它?

如果我gflags从命令行开始,什么都没发生,没有错误,没有反馈,没有.

有人知道我的系统可能会发生什么吗?

windows gflags

5
推荐指数
1
解决办法
1095
查看次数

如何将自定义标志传递给`bazel test`命令

我在测试中使用了gflags来定义自定义标志.如何通过bazel test命令运行测试时将这样的标志传递给我的测试?

例如:我可以使用以下命令多次运行测试:

bazel test //xyz:my_test --runs_per_test 10 
Run Code Online (Sandbox Code Playgroud)

在同一个命令中我想传递一个标志,my_test比如说--use_xxx,我该怎么做?

gflags bazel

5
推荐指数
1
解决办法
1972
查看次数