小编Jer*_*rle的帖子

如何在g ++代码中找到给定成员函数或ctor的所有位置?

我试图找到一个大型和旧的代码库中的所有位置,其中调用某些构造函数或函数.具体来说,这些是类中的某些构造函数和成员函数std::string(即basic_string<char>).例如,假设有一行代码:

std::string foo(fiddle->faddle(k, 9).snark);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,看起来不是很明显,这snark可能是一个char *,这是我感兴趣的.

试图解决这个问题

我已经研究了gcc的一些转储功能,并生成了其中的一些,但是我还没有找到任何告诉我给定的代码行将生成对string构造函数的调用const char *.我还用-s编译了一些代码来保存生成的等效汇编代码.但这有两个方面:函数名称被"破坏",所以不可能知道用C++术语调用什么; 并且没有任何类型的行号,因此即使在源文件中找到等效位置也很难.

动机和背景

在我的项目中,我们将一个庞大的旧代码库从HP-UX(及其aCC C++编译器)移植到RedHat Linux和gcc/g ++ v.4.8.5.HP工具链允许stringNULL指针初始化a ,将其视为空字符串.Gnu工具生成的代码失败,带有一些null的解除引用错误.因此,我们需要找到所有可能的情况,并对其进行补救.(例如,通过添加代码来检查NULL和使用指向""字符串的指针.)

因此,如果那里的任何人不得不处理基本问题并且可以提供其他建议,那么这些建议也会受到欢迎.

c++ gcc

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

如何在OpenSSL Windows中使用SSL_CERT_FILE(OpenSSL 1.0.1c)

如何(如果有的话)可以使用SSL_CERT_FILE环境变量在Windows(Win-7,OpenSSL 1.0.1c)上为OpenSSL定义单个可信证书文件?

各种研究使我下载了12月份版本的Mozilla PEM格式的可信证书,从这里开始:http://curl.haxx.se/docs/caextract.html 这包含所有连接到一起的证书和各种相关信息.一个文件.

我发现了对依赖OpenSSL的其他产品使用环境变量SSL_CERT_DIR和SSL_CERT_FILE的各种引用.例如,http://lynx.isc.org/current/README.sslcerts表示可以设置这两个,并且底层的OpenSSL库将使用它们.但是,这不是我使用OpenSSL工具本身的经验.

我成功地使用了SSL_CERT_DIR,但是很痛苦,如下所示.我从www.wellsfargo.com(随机选择)导出了证书(来自IE 8),以及来自Verisign的信任链中的两个证书.我将两个Verisign证书中的每一个放在目录C:\ ca_stuff中,并为每个证书生成一个哈希

openssl x509 -hash -noout -in"Verisign Intl Server.cer"

它输出了a302054c,并由此创建了一个链接

mklink a302054c.0"Verisign Intl Server.cer"

同样适用于Verisign的其他证书.然后我把Wells Fargo证书.在不同的目录中,并能够使用成功验证它

设置SSL_CERT_DIR = C:\ ca_stuff openssl验证"Wells Fargo web.cer"

但是,在定义SSL_CERT_FILE后,指向从cURL站点下载的下载的cacert.pem,相同的命令失败.无论是否定义了SSL_CERT_DIR,它都会这样做.我确认必要的CA证书在捆绑中,并确认其序列号与我从IE手动提取的序列号相匹配.

手动提取每个证书并将其放在自己的文件中并使用指向它的哈希链接似乎是一个艰难的过程.如果这是Unix,我可以自动化它,但在Windows上......我显然误解了如何使用OpenSSL获得一个大的CA证书文件.

提前感谢您提供任何建议,见解和帮助.

openssl windows-applications

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

标签 统计

c++ ×1

gcc ×1

openssl ×1

windows-applications ×1