小编Sam*_*amB的帖子

如何更改年龄不匹配的PDB才能正确匹配?

我们的夜间构建过程已经被打破了很长时间,因此它生成的PDB文件的年龄与相应的图像文件相差几个小时.我已经解决了这个问题.

但是,我想开始使用符号服务器,但不能因为必须使用这些年龄不匹配的pdb文件.我通过在windbg中使用.symopt + 0x40方法解决此问题.这意味着我必须手工组织我的所有pdb文件,经过多年的发布后,这就相加了.

我正在寻找一种方法来修改windbg用于标记pdb年龄的机制,并强制它匹配我的图像文件.实用程序ChkMatch执行类似的操作,但是对于pdb签名.开发人员在页面上声明"ChkMatch能够使可执行文件和PDB文件匹配,如果他们有不同的签名但年龄相同(有关PDB签名和年龄的更多信息,请参阅此文章).如果年龄不同,该工具无法生成文件匹配."

我看了一下hexeditor,甚至找到了与年龄相对应的东西,但它必须在内部拉出一些技巧,因为我无法让它工作.

有任何想法吗?

编辑:我不知道这是否有帮助,但在我的特殊情况下,年龄差异是由于不必要地重新连接dll引起的,这也会重新创建PDB文件.但是,我们的构建过程是存储原始dll(在重新链接之前),以及重新链接之后的pdb.我想过以某种方式手工重建这种情况.意思是,强制重新链接DLL,但在两种情况下都保存了pdb.然后我可以对这两个文件进行二进制比较,看看它们是如何变化的.也许运行某种自动执行此操作的修补软件?通过查看我的控制案例中究竟发生了哪些变化,或许我可以对我公司构建过程中保存的DLL和PDB做同样的事情?

编辑:我想出来!!!! 感谢第一个答案的评论之一,我查看了"未记载的Windows 2000 Secrets:A Programmers Cookbook"一书的pdf链接.作者详细介绍了pdb文件格式.正如我之前所说的那样,我已经将pdb加载到十六进制编辑器中,然后翻出一些看起来我的年龄/签名匹配,但它没有用.好吧,在使用W2k秘密书中的实用程序将pdb"爆炸"到包含的流中之后,我发现它们隐藏了对流3中年龄的另一个引用!!!!!!! 一旦我翻过那个,它在windbg中匹配.这太棒了!!!! 非常感谢....这里的符号服务器我来了!

windows symbols windbg symbol-server pdb-files

29
推荐指数
3
解决办法
2万
查看次数

如何将有向无环图(DAG)存储为JSON?

我想将DAG表示为JSON文本,并想知道是否有人尝试过此以及他们处理的有关验证JSON是否实际上是DAG的任何问题.

json directed-acyclic-graphs data-structures

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

Ctrl-C和SIGINT有什么区别?

我一直在调试一个Python程序,它在收到KeyboardInterrupt异常后会出现段错误.这通常是通过Ctrl+C从外壳按下来完成的.为了测试特定代码更改是否修复了错误,我有一个小的shell脚本,SIGINT在启动后随机时间发送到程序.我Ctrl+C遇到的问题是发送似乎对程序的影响不同于发送信号SIGINT,因此不会导致错误出现,所以我很想知道这两个动作之间的区别是什么.

该程序根本不捕获任何键盘操作,并且只是一个包含一些线程/进程的python程序.它不安装任何信号处理程序(虽然Python确实如此),并stty -a给出intr = ^C.我怀疑它可能是Ctrl+C发送SIGINT到所有子进程/线程而kill -INT只发送到主进程,但这是我的怀疑.

这是发送的shell脚本kill -INT.

wait
while :; do
    seconds="$(python -c 'import random; print random.random()*4')"
    ./mandos --debug --configdir=confdir \
             --statedir=statedir --no-restore --no-dbus &
    pid=$!
    { sleep $seconds; kill -INT $pid; } &
    fg %./mandos
    status=$?
    if [ $status -gt 1 ]; then
        echo "Failed exit $status after $seconds seconds"
        break
    fi
    wait
done
Run Code Online (Sandbox Code Playgroud)

unix sigint keyboardinterrupt

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

将PDB调试文件留在实时服务器上是否存在任何安全问题?

是否存在将.NET PDB文件保留在真实服务器上的安全问题?

我知道抛出异常可能需要更长时间,但是在正常执行期间谁抛出异常呢?:-)

但从安全角度来看?任何问题?

.net asp.net security pdb-files

24
推荐指数
3
解决办法
8999
查看次数

如何使用逗号分隔值读写/写入文本文件

如果我的文件是逗号分隔值,我如何从文件中读取数据

1, 2, 3, 4, 5\n
6, 7, 8, 9, 10\n
\n
Run Code Online (Sandbox Code Playgroud)

在读完文件后,我想将数据写回到上面相同格式的其他文件中.

我可以使用获得总行数

string line;
while(!file.eof()){
      getline(file,line);
      numlines++;
    }
    numline--; // remove the last empty line
Run Code Online (Sandbox Code Playgroud)

但我怎么知道一行/一行的总位数?

我还有一些存储数据的向量.所以,我想读取第一行,然后计算该行中元素的总数,这里是5(1,2,3,4,5)并将它们存储在数组/向量中,然后读取下一行并将它们存储在向量中再等等,直到我到达EOF.

然后,我想将数据写入文件,我想这将完成将数据写入文件的工作,

numOfCols=1;
for(int i = 0; i < vector.size(); i++)
{
    file << vector.at(i);
    if((numOfCols<5) file << ",";//print comma (,)
    if((i+1)%5==0)
    {
                  file << endl;//print newline after 5th value
                  numOfCols=1;//start from column 1 again, for the next line
    }
    numOfCols++;
}
file << endl;// last new line
Run Code Online (Sandbox Code Playgroud)

所以,我的主要问题是如何用逗号分隔值从文件中读取数据?

谢谢

c++ csv

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

粘贴,但对于HTML?

Pastebin是一个有用的在线工具,用于粘贴文本片段.Pastie是一个类似的工具.此外,Ideone是类似的,除了它还运行源代码,以及作为一般的pastebin.

对于HTML,是否有类似的工具?要使用或不使用javascript来托管简单的单页html文档,而不是为此目的设置一个freehostia帐户?

html javascript testing pastebin

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

调试DLL的发行版本(带PDB文件)

如果我有一个DLL(在发布模式下构建)和相应的PDB文件,是否可以调试(步入)该DLL中包含的类/方法?

如果是,那么所需的步骤/配置是什么(例如,放置PDB文件的位置)?

编辑:

如果将PDB文件放在与DLL相同的位置(在简单控制台测试应用程序的bin/debug目录中).我可以看到DLL的符号被加载(在"输出"窗口中,也在"模块"窗口中),但我仍然无法进入该DLL的方法.

这可能是编译器优化的结果(正如Michael在他的回答中所描述的那样)?

c# debugging visual-studio-2008 pdb-files

21
推荐指数
3
解决办法
3万
查看次数

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

Visual Studio 2008 - 添加引用

添加DLL作为ASP.Net项目的引用时,VS2008会将多个文件添加到bin目录中.如果DLL被称为foo.dll,VS2008会添加foo.dll.refresh,foo.pdb和foo.xml.我知道foo.dll是什么:-),为什么VS2008会添加其他三个文件?这三个文件做了什么?我可以删除它们吗?是否需要在源代码管理中添加它们?

version-control intellisense .refresh visual-studio-2008 pdb-files

17
推荐指数
3
解决办法
1万
查看次数

在Visual Studio中,我可以将断点放在我只有调试符号的代码中吗?

由于我无法访问我正在使用的库的完整源代码,但我确实有pdb文件,是否可以在"调试源代码"中设置断点?

如果是这样,我该怎么做?

debugging symbols breakpoints visual-studio pdb-files

17
推荐指数
1
解决办法
5663
查看次数