问题标签 [dynamic-execution]
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.
.net - 有没有办法欺骗 .NET JIT 编译器运行另一种方法?
好的,假设我的应用程序正在将(x86)指令发送到内存中,使页面可执行等。有没有办法改变非 JIT 方法的方法存根以指向我发出的指令流?
例如:
假设我在内存中创建了一个 x86 指令流,它可以做一些任意的事情。现在,进一步假设我有一个方法'int Target()'。我还没有调用它,所以它还没有编译。有没有办法:
- 获取指向 Target 存根的指针
- 让它指向我发出的指令流。
我意识到.NET 的几乎每一个安全特性都是为了防止这样的劫持而设计的。但是可以通过托管 API 来实现吗?
c# - how to run some code in memory?
I have a compiler which compiles assembly language to machine language (in memory). My project is in C# .net. Is there any way to run the memory on a thread? How can DEP prevent it?
c# - 当它的所有者进程退出时,你如何让一个 DLL 被删除?
我有一个 .NET 程序集 DLL,它是从数据库中的预编译代码动态创建的。有没有办法创建 DLL 文件,将数据放入其中,将其与Assembly
类一起加载,然后当进程退出时,是否删除了该 DLL?
我的第一个想法是用FILE_SHARE_DELETE
标志打开它,加载它Assembly.LoadFrom,
并自动删除它。
尽管 LoadLibrary 确实打开带有该FILE_SHARE_DELETE
标志的文件,但当 DLL 仍映射到内存中时,操作系统不会删除该文件。
那么,如何在进程退出而不使用AppDomains
或启动外部“在目标进程退出后删除此文件”可执行文件时删除 DLL(在运行时加载的 .NET DLL 取决于用户输入,因此这样做会涉及某种进程沟通,我想避免)。
python - Python:如何动态设置函数闭包环境
我想动态声明一个函数,并且我想包装对全局变量的任何访问,或者定义哪些变量是免费的并包装对自由变量的任何访问。
我正在玩这样的代码:
这将产生输出:
我想要的是以某种方式x
使用我的 dict-like wrapper获取访问权限D
。我怎样才能做到这一点?
我不想预定义所有全局变量(在这种情况下x
),因为我希望能够懒惰地加载它们。
java - 获取java文件的动态执行结果
我正在使用下面的方法来执行一个名为 NewFile.java 的文件。
行thisMethod.invoke(instance,(Object)m); 自动运行 NewFile.java 并在控制台中打印结果[如果存在],无论如何我可以在字符串中获得执行结果
NB 类型转换为 (String) thisMethod.invoke(instance,(Object)m); 没用..它给出了null。
java - 找不到动态执行的文件
我正在使用动态执行,但它告诉我找不到该类,尽管我仔细检查了路径并且它是正确的
这是我正在使用的方法
这打印
这里 1
这里 2
这里 3
在这里 4
找不到类
这里 5
方法中是否缺少任何东西
java - 安装插件时动态执行不起作用
我正在开发一个运行当前活动文件的 Eclipse 插件。我正在使用这种方法
但是当我“启动 Eclipse 应用程序”[在另一个 Eclipse 窗口中运行插件]时它可以工作,但是当我在 Eclipse 中安装插件时它不再工作了。问题出在这一行
类 thisClass = classLoader.loadClass("NewFile"); 它找不到要执行的类
c++ - 编译包含动态并行性的代码失败
我正在使用 CUDA 5.5 和计算能力为 3.5 的 NVDIA GeForce GTX 780 进行动态并行编程。我在内核函数中调用内核函数,但它给了我一个错误:
错误:从 __global__ 函数("kernel_5") 调用 __global__ 函数("kernel_6") 只允许在 compute_35 架构或更高版本上
我究竟做错了什么?
azure - 如何在 exe 文件中添加用户特定信息
我在服务器端(应用程序)上有一个与客户端(应用程序)链接的代码。用户注册以下载 exe(客户端应用程序)。必须有一种独特的方式来使用从注册中获得的信息来识别用户(客户端应用程序 exe)。
因此,下载过程中必须将其中一项信息附加到 exe 文件中。
我发现的一种方法是使用“便携式可执行文件”。
是否可以将字符串数据添加到 exe 并稍后检索它?
是否有任何其他可能的方式使 exe 用户特定?或者是否可以将用户信息与下载的 exe 一起添加?
cpu - 乱序指令执行:提交顺序是否保留?
一方面,维基百科写了乱序执行的步骤:
- 取指令。
- 将指令分派到指令队列(也称为指令缓冲区或保留站)。
- 指令在队列中等待,直到其输入操作数可用。然后允许该指令在较早的较旧指令之前离开队列。
- 该指令被发布到适当的功能单元并由该单元执行。
- 结果排队。
- 只有在所有旧指令的结果都写回寄存器文件之后,才会将该结果写回寄存器文件。这称为毕业或退休阶段。
类似的信息可以在《计算机组织与设计》一书中找到:
为了使程序表现得好像它们在一个简单的有序流水线上运行,指令获取和解码单元需要按顺序发出指令,这允许跟踪依赖关系,并且提交单元需要将结果写入寄存器和程序获取顺序中的内存。这种保守的模式被称为按序提交……今天,所有动态调度的管道都使用按序提交。
因此,据我了解,即使指令执行是以乱序方式完成的,它们的执行结果也会保存在重新排序缓冲区中,然后以确定的顺序提交到内存/寄存器。
另一方面,众所周知,现代 CPU 可以重新排序内存操作以提高性能(例如,可以重新排序两个相邻的独立加载指令)。维基百科在这里写到。
您能否解释一下这种差异?