问题标签 [relocation]
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.
linker - 链接器如何确定符号在哪一行被调用?
我想知道,链接器如何确定 printf 被称为 @ 0xd1:如果我查看符号表中的 _printf 地址,我看到它是 0x0,因为该函数尚未重新定位。但是链接器和 objdump 是如何知道应该在地址1e处进行重定位的呢?Objdump 说 DISP32 _printf,但我在 objfile 中找不到说明应该在地址 1e 处进行重定位的条目。
objdump -d -r -t test.obj
输出:
javascript - on.click 删除 a 中任何 url 的一部分然后加载它
当用户单击它时,我想从我的任何 url 中删除 /groups/
背景故事是我有一个 wordpress 小部件,它显示指向页面(BP 组)的链接,我希望用户在点击时被发送到我为每个组创建的页面(因为我无法在 buddypress 中创建主页)。
我已将页面 url 设置为与组页面相同但没有 /groups/ 所以如果它被删除,小部件会将用户发送到我的页面。
例如,访客被发送到: http: //focallocal.org/up-cycling-workshop-with-londons-homeless/ 而不是 http://focallocal.org/groups/up-cycling-workshop-with-londons-无家可归/
我已经研究了很长时间,这是我能想到的最好的(我不会说 js):
编辑请求的html:
关闭活动、团体和项目 活跃 | 受欢迎的
cmake - FreeRDP CMAKE 错误
您好,我是 linux 的新手,我正在尝试安装 FreeRDP。我不断收到此错误:
在我输入“make”命令后。对不起,如果这个问题已经被问过,但我已经彻底搜索了堆栈溢出并没有找到它。提前致谢:)
python - InformixDB 2.5:符号 SQLSTATE:未找到引用的符号
我在 Solaris 10 Sparc 上成功安装了 Python2.5.6 和 InformixDB2.5
当我运行脚本时,出现以下错误:
ldd -d /usr/local/lib/python2.5/site-packages/_informixdb.so
给了我以下输出:
我还没有找到解决方案或类似的问题。
有人知道如何解决这个问题吗?
问候
linux - GDB如何执行共享库的基地址[info sharedlibrary命令的内部]
我试图了解 GDB 命令背后的内部工作。在了解了精灵/共享库/地址空间随机化的初步功课之后,我试图了解 GDB 如何在可执行文件和核心文件之间发挥作用。
solib.c 包含共享库处理的实现。Esp 对 info sharedlibrary 命令很感兴趣。
solib.c 上的评论是这样的..
我不能从这个评论中理解太多。有人可以用简单的英语向我解释搬迁是如何发生的吗?即每次可执行文件加载共享对象时,它都会加载到某个位置,比如 X,共享库中的所有符号都将位于固定偏移量,比如 X+Y,大小为 Z。我的问题是, gdb如何进行相同范围的地址重定位,以便与corefile中的加载段匹配。它如何从可执行文件中获取该提示。
assembly - 代码如何知道 API 函数的地址?
再次,抱歉标题不好。
所以上周我一直在研究 PE 格式,但并没有得到什么。当一个进程加载时,所有的 DLL 都被映射到内存中。我不明白的是,因为DLL可以在随机基址加载,.exe文件的代码如何能够知道API函数的地址?是否有一些寻找 Kernel32.dll 或其他东西的“启动代码”?我知道使用GetProcAddress查找函数的过程很容易,但是它如何获得GetProcAddress的地址?
c++ - 如何将 PE 映像中的所有虚拟地址 (VA) 映射到相对 VA
我想使用 Win32 C++ API 将模块的图像(加载到进程的内存中)读入缓冲区。阅读后,我想将缓冲区中的所有 VA 更改为 RVA。
我ImageRvaToVa
在 MSDN 上找到了该功能,但是,我需要反向映射,即ImageVaToRva
,我需要将它应用于给定图像内的所有 VA。但是,我找不到这样的功能或类似的功能。Win32中是否存在这样的功能?
做我想做的一种方法是解析.reloc
图像的部分。但是,我没有找到任何直接的方法来做到这一点。是否有任何可以轻松解析该.reloc
部分的 Win32 API 函数?
对于解决此问题的方法的任何其他建议将不胜感激。
assembly - 什么是可重定位和绝对机器码?
在学习汇编程序时,我遇到了这些术语。我得到的想法是这样的,在可重定位机器代码中,代码不依赖于静态 RAM 位置。汇编器为我的程序指定 RAM 需求。内存可以放置在链接器为它们找到空间的任何地方。
这个想法正确吗?如果是这样,汇编程序是如何完成的?
而且,绝对机器码的一些例子是什么?
c++ - “符号`_ZTISt16invalid_argument'导致R_X86_64_32重定位溢出”是什么意思?
我使用自编译的 GCC 4.8.2 在 Scientific Linux 6.4(64 位)下编译了一个 C++11 应用程序。该应用程序可以正常编译,但是在运行它时(LD_LIBRARY_PATH
设置为包含 gcc 4.8.2 lib64 目录以便它找到libstdc++.so.6
),出现以下消息:
Symbol `_ZTISt16invalid_argument' causes overflow in R_X86_64_32 relocation
Symbol `_ZTISt16invalid_argument' causes overflow in R_X86_64_32 relocation
Symbol `_ZTISt12out_of_range' causes overflow in R_X86_64_32 relocation
(去错符号名称是typeinfo for std::invalid_argument
和typeinfo for std::out_of_range
)
通常应用程序运行良好;但在某些情况下它会崩溃,显然是因为它试图捕获一个“invalid_argument”异常,该异常被提升到顶部框架。
这些消息是什么意思,我该如何解决?
django - Django 找不到我的静态文件
我正在尝试重新组织我的项目,因为其中的文件非常杂乱无章。主项目文件夹中有一个静态文件夹,应该只包含所有应用程序。所以我将一些 .js 文件重新定位到它们各自的应用程序中。
其中一个文件位于 /static/js/mmm 中,我正在尝试将其移至 mmm/static/mmm。我复制了文件并更改了我的一个模板(位于 mmm/templates/mmm)中的代码
至
但是我打开了页面和 js 控制台,它试图访问这样的文件:http:
//fakedomain.com/static/mmm/filemanage.js
据我了解,它应该在 http://fakedomain.com/mmm/static/mmm/filemanage.js
在我的设置文件中,我将“mmm”作为已安装的应用程序,并且
不知道我在这里做错了什么,因为我不完全理解 Django 如何搜索静态文件。我也没有把这些东西放在设置文件中,所以我不明白他们在做什么。Django 教程第 6 部分说“Django 的 STATICFILES_FINDERS 设置包含一个查找器列表,这些查找器知道如何从各种来源发现静态文件。默认设置之一是 AppDirectoriesFinder,它在每个 INSTALLED_APPS 中查找“静态”子目录,例如我们刚刚创建的民意调查中的一项。”