小编San*_*hra的帖子

记录是否已读取或写入全局变量

需求:

给定一个C程序,我必须确定访问全局变量的函数是读取它们还是编写它们.

示例代码:

#include <stdio.h>

/* global variable declaration */
int g = 20;

int main()
{

    /* writing the global variable */
    g = 10;

    /* reading the global variable */
    printf ("value of g = %d\n",  g);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

执行上面的代码我想生成以下格式的日志文件:

1- Global variable a written in function main() "TIME_STAMP"
2- Global variable a read in function main() "TIME_STAMP"
Run Code Online (Sandbox Code Playgroud)

研究:

我可以通过按照以下逻辑对源代码进行静态分析来实现这一点:

  • 浏览c代码并识别读取全局变量的语句.
  • 然后分析c代码语句以确定它是读还是写语句.(检查++或 - 运算符是否与全局变量一起使用或者是否已对全局变量进行任何赋值)
  • 在标识的语句上方添加一条日志语句,该语句将与此语句执行一起执行.

这不是一个正确的实现.

一些研究:

我已经了解了调试器如何捕获信息.

互联网中的一些链接: 如何使用写入地址捕获内存写入和调用函数

c algorithm

10
推荐指数
2
解决办法
135
查看次数

为什么默认的char缓冲区大小为BufferedReader 8192?

当我构造一个新的时,BufferedReader它为我提供了8192个字符的缓冲区。这背后的逻辑/原因是什么?

8192 = 2 to the power of 13
Run Code Online (Sandbox Code Playgroud)

java bufferedreader

5
推荐指数
2
解决办法
2126
查看次数

如何使用CMake为LLVM生成64位Visual Studio项目?

我从http://releases.llvm.org/download.html下载了LLVM源代码库.

现在,当我在源目录中运行CMAKE时,它正在生成32位Visual Studio项目,但我想生成64位可视工作室项目.如果有人已经尝试过请帮助.

我已经浏览了文档https://llvm.org/docs/GettingStartedVS.html,当然提到的-Thost=x64选项不起作用.

cmake llvm-clang

4
推荐指数
1
解决办法
1043
查看次数

如何在eclipse项目中使用mockito启用最终类模拟?

我在 maven 项目中使用mockito-core-2.7.21,它按预期工作。

但是为了能够模拟最终类,我在mockito-extensions\org.mockito.plugins.MockMaker源文件夹下创建了一个文件并添加了文本mock-maker-inline.

根据https://www.baeldung.com/mockito-final以及使用 Mockito 2模拟最终课程,它应该允许我模拟最终课程但是当我运行我的 junit 测试时,我收到以下错误:

Java 版本:1.8

操作系统:Windows 10

Junit:4 和 5(我都试过)

java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker
    at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:66)
    at com.sun.proxy.$Proxy7.isTypeMockable(Unknown Source)
    at org.mockito.internal.util.MockUtil.typeMockabilityOf(MockUtil.java:29)
    at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:22)
    at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:186)
    at org.mockito.internal.creation.MockSettingsImpl.confirm(MockSettingsImpl.java:180)
    at org.mockito.internal.MockitoCore.mock(MockitoCore.java:62)
    at org.mockito.Mockito.mock(Mockito.java:1729)
    at org.mockito.Mockito.mock(Mockito.java:1642)
    at siemens.esd.grpc.services.UTCreateModuleServiceTest.testCreateBlockInterface(UTCreateModuleServiceTest.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) …
Run Code Online (Sandbox Code Playgroud)

mockito

4
推荐指数
1
解决办法
2244
查看次数

为什么Stack在JDK中扩展Vector?

Stack不是Vector那么为什么Stack类的扩展(有关系)在JDK Vector类,堆栈想将工作与push()pop()操作,但因为它扩展矢量我能够做的add()remove()操作在堆栈。

我认为应该扩展Vector类,而Stack类应该使用Vector类作为组合。

java oop

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

标签 统计

java ×2

algorithm ×1

bufferedreader ×1

c ×1

cmake ×1

llvm-clang ×1

mockito ×1

oop ×1