问题标签 [codeguard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - Visual Studio 有类似 Borland 的 CodeGuard 的东西吗?
Visual Studio 中是否有任何东西会报告像 Codeguard 这样的内存泄漏?
例如:
linker - 为了在 C++ Builder 2009 中成功链接 C++ Builder 6 项目而没有未解决的对 CodeGuard 事物的外部引用,我应该怎么做?
这是我所做的:
- 我在 C++ Builder 2009 中打开了一个 C++ Builder 6 - 项目。
- 将其自动转换为 C++ Builder 2009 项目。
- 告诉它(C++ Builder 2009)构建一切。
这是它所做的:
- 成功编译一切。
未能完成 ILINK32,退出
/li>
delphi - 在 C++ Builder 2010 中使用包时,如何解决“加载了两个不同的 CRTLDLL”?
我们正在尝试将我们的整体 EXE 拆分为一个 EXE 和几个包的组合。到目前为止,我们有一个我们正在尝试使用的包,并且在运行 EXE Codeguard 时在启动时显示以下错误:
我将其读取为两个不同的运行时库正在加载 - 一个是正确的(CC32100MT.dll),一个是不正确的,这是我们正在尝试使用的包。
继续运行程序会显示奇怪的错误,尤其是在类之间进行转换或将指向类的指针作为参数传递给跨越 EXE/DLL 边界的方法。Codeguard 本身根本不显示任何其他错误。 编辑:这现在已经解决,并且不相关。该程序似乎运行正常,但 Codeguard 显示的警告仍然令人担忧。
我们如何解决这个问题?
更多细节
我们已经研究了我们(开发人员和我)可以集体想到的尽可能多的事情:
每个项目都是使用运行时包构建的。EXE 主机在其包列表中列出了 Bar。
每个项目都设置为使用动态 RTL 进行编译。但是,改变这一点并不能解决问题。
该包通过其 BPI 文件链接到 EXE,但通过 LIB 链接也没有区别。
EXE 和 BPL 使用相同的项目设置进行编译,其中两种类型的项目存在相同的选项。无论如何,我们认为:)
系统上只有一份 BPL 和 BPI 副本:它肯定链接到正确的副本。
检查 EXE 和 BPL
Depends
并TDump
显示它们都在使用C:\Windows\system32\CC32100MT.DLL
. 他们都应该使用一个 RTL。创建一个新项目(一个普通的 VCL 表单应用程序)并链接到 BPL(通过它的 BPI)工作正常。在添加所有文件和 LIB 的过程中,使我们的 EXE 包含更改它所需的代码,但我们无法弄清楚是什么。
LIB 要么对应于我们使用的 DLL(平面 C 接口,通常看起来好像它们是用 MSVC 构建的),要么是具有大量相关文件的简单项目,为了链接到 EXE 而编译到 lib - 这些大致对应顺便说一下,到我们想要拆分为 BPL 的程序区域。LIB 项目似乎没有会影响 RTL 链接的项目选项,除非我们错过了它们。
我已经详尽地
Depends
搜索并查看了 EXE 和每个 DLL 引用的所有 RTL 和 CC32*.dll 文件。全部相同:rtl140.bpl 和 CC32100MT.DLL。完全限定的路径也表明它们是相同的文件。一切都应该使用同一个运行时库。
编辑:最终的 EXE 很复杂,用几个库、几个 DLL 等构建。所有这些,当用 C++Builder 构建时,都是用当前版本构建的。这些 DLL 或 LIB 之一中是否有可能导致问题的东西?我对 RTL 的链接方式知之甚少,无法确定在哪里查看……我的(天真?)假设是链接器通常会链接到一组 RTL 函数中,但这当然不会似乎正在发生......而且我不知道使用包时事情会如何变化。是否有可能这个错误一直存在并且 Codeguard 之前没有标记它,因为我们没有使用像包这样的动态东西?
也许另一个问题是,为什么一个包会有它自己的 RTL,或者是什么让它算作 Codeguard 的“RTL DLL”?
我们很难过。绝对难倒。我们在使用 BPL 时遇到了其他问题(它们似乎是非常棘手的事情,尤其是使用 C++),但已经设法解决了所有问题。我们完全没有运气,我们非常感谢任何见解:)
我们使用的是 C++Builder 2010(实际上是 RAD Studio 的一部分,但除了组件之外几乎没有 Delphi 代码。)
编辑:开始赏金。我真的很想解决这个问题!
编辑 2:感谢David Dean的帮助(标记如下。)通过电子邮件,他指出这个问题是由其他人在一个简单的测试用例中复制的,并在Embarcadero QC 中作为报告 86335 登录。目前没有修复,但警告似乎并不表示真正的问题(即,它可能是一个虚假错误,虽然很遗憾在运行时必须点击对话框,但希望错误中没有什么可担心的关于。)
debugging - C++ Builder 2009 中的调试问题
我有一个奇怪的问题,希望你能帮助我。
我在 C++ Builder 2009 中编写了一个程序,当我在没有调试器的情况下运行该程序时,我看到引发了一个异常。调试器中的 bun 从不引发异常,我找不到异常点。
此外,我在 C++ 中启用 CodeGaurd 以查找问题,但从未引发异常,如果我禁用 codeGuard,异常将再次出现。
我在程序中使用 OpenCV 和一些 Delphi 单元。当我编译它时,我看到编译了超过 200 万行代码。
提前感谢您的关注。
c++ - 在 CBuilder 2010 中传递参数时出现 C++、ostream 错误
这个源代码有什么问题?
我试图在 CBuilder 2010(启用 CodeGuard)下编译这个源代码。CodeGuard 已停止应用程序并显示以下错误日志:
谢谢你的帮助。
更新的问题:
不幸的是,这是一个较旧的报告错误: http: //www.borlandtalk.com/is-there-a-bug-in-codeguard--vt112810.html
主题可以关闭...
magento - 哪些 Magento 网站目录和文件不能使用 Codeguard 等云备份解决方案进行备份?
我在网站上安装了 Magento 1.7.0.2,并希望通过 FTP 使用 Codeguard (codeguard.com) 在云中备份。我被问到要选择哪些目录进行备份,并建议删除 /var/cache 和 /var/temp 目录,因为 codeguard 会比较不同版本的备份并相应地更新后续备份。显然,不应备份缓存和临时文件夹。
我的问题是我不应该备份哪些其他目录和文件?我的 /var 目录包含以下子目录和文件:cache、export、locks、package、session、tmp 和 .htaccess 文件。
c# - 了解接口的代码契约
我想为某个接口创建一个代码合同,但是我很难相信它实际上是这样完成的。
合同应确保 1) 所有实现接口的类都要求参数键不为 null 或为空,以及 2) 自动生成检查到构建中,例如类似于
但是在这种特殊情况下,我感到很奇怪,我必须分配out
参数并返回一个虚拟变量Task
才能使编译器满意。有没有更直接的方法,例如使用属性?
sql - SQL Code Guard 和嵌套事务回滚?
我有一个可以从事务中调用的存储过程。当出现异常时,我想回滚事务(顶级事务)。我想使用这样的东西:
问题在于,SQL Code Guard 为此报告了警告 EI020 - ROLLBACK TRANSACTION without BEGIN TRANSACTION。有没有办法正确地写这个?
c++ - 将数据写入文件和 CodeGuard 错误通知
在将数据写入文件并关闭文件时,CodeGuard 会产生错误。
ERROR-1: Bad parameter in process: Project1.exe(3916) - c:\program files (x86)\embarcadero\studio\15.0\include\dinkumware\fstream#246 已传递错误文件或管道流 (0x320D096C)到功能。0x0040AC80 调用 fputc(0x61 ['a'], 0x320D096C)
ERROR-2: Bad parameter in process: Project1.exe(3916) - c:\program files (x86)\embarcadero\studio\15.0\include\dinkumware\fstream#180 错误的文件流 (0x320D096C) 已传递到功能。0x32088358 调用 [通过 0x0040D030] fclose(0x320D096C)
如何解决?
更新-1:
但结果还是一样。
我尝试使用来自http://www.cplusplus.com/reference/ostream/ostream/write/的示例代码
现在 CodeGuard 抛出下一个错误:
ERROR-1: Bad parameter in process: Project1.exe(5908) 错误的文件或管道流 (0x3224096C) 已传递给函数。0x0040DE48 调用 fseek(0x3224096C, 0x0 [0], 0x2 [2])
ERROR-2: Bad parameter in process: Project1.exe(5908) 错误的文件或管道流 (0x3224096C) 已传递给函数。0x0040DE48 调用 fgetpos(0x3224096C, 0x0018F294)
ERROR-3: Bad parameter in process: Project1.exe(5908) 错误的文件或管道流 (0x3224096C) 已传递给函数。0x0040DE48 调用 fsetpos(0x3224096C, 0x0018F28C)
ERROR-4: Bad parameter in process: Project1.exe(5908) 错误的文件或管道流 (0x3224096C) 已传递给函数。0x0040DE48 调用 fgetc(0x3224096C)
ERROR-5: Bad parameter in process: Project1.exe(5908) 错误的文件或管道流 (0x32240984) 已传递给函数。0x0040DE48 调用 fputc(0x78 ['x'], 0x32240984)
ERROR-6: Bad parameter in process: Project1.exe(5908) 错误的文件流 (0x32240984) 已传递给函数。0x321F832C 调用 [通过 0x0041177E] fclose(0x32240984)
我已经在 C++Builder XE7、XE8 和 С++Builder 10.1 Berlin 上测试了这段代码。在所有情况下,CodeGuard 都检测到了这些错误。
memory-leaks - 使用 Embarcadero 10.3.1 时代码中的内存泄漏
我的 C++ 代码是用 Embarcadero 10.3.1 编写的。我面临很多内存泄漏和资源泄漏。我无法识别泄漏。
当我使用 CodeGaurd 时,应用程序会冻结,所以我无法得出任何结论。
我的应用程序是一个后台作业,它不断处理文件并生成标签。它可以正常工作几个小时并生成大约 3000 个标签,然后进入挂起/无响应状态。
任何人都可以提出任何解决方案吗?