- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在调试 php。当查看内存中我知道指向地址的指针所在的位置时,我看到了指针 - 例如 22810408 (0x08048122) - 这是在使用 php 的 CLI 版本时。
但是,当我使用 apache2 并尝试做同样的事情时,我没有看到指向真实地址的指针。相反,我看到 ELF header 的偏移量,当添加到 ELF header 的地址时,它会给我“真实”地址。例如,如果“真实”地址是 0x08048122,而 ELF header 位于 0x08048000,那么我会在同一位置看到 22010000 (0x122)。
当我试图找出堆栈上某物的“真实”地址时,问题就出现了。 “真实”地址应该是 0xbfccxxxx,但是当我将我找到的数字添加到 ELF header 时,事情就是不加起来!我得到了所有错误的地址。
我已经尝试谷歌搜索很长时间了,但我真的不确定如何正确措辞或搜索什么。
因此,我主要寻找的是有关为什么 Apache 具有偏移量而不是实际内存地址的更多信息,以及这一切如何与堆栈上的地址相关。谁能给我任何可能澄清的 Material 的指示?
最佳答案
Apache 使用 mod_php
,一个 dynamically linked shared object library (。所以)。参见 what is mod_php? .其中 PHP-CLI 是 zend API(php 可执行文件)的前端。
mod_php 在其一侧加载并利用 zend API 来解析 PHP 文件并将其返回给 apache。如您所见,这里有很多间接性。这种方法比让 apache 使用 PHP 作为守护进程或类似的方法更好更快。
在调试 PHP 时,您通常会在比这更高的级别上工作,因为即使您获得了正确的偏移量; PHP 数据类型与 C 的数据类型不是 1:1(因为 PHP 的鸭子类型),并且对于关联数组和对象,内存中的表示与 C 对象的表示非常不同。
我建议您使用 specialized PHP debugger调试 PHP 应用程序。
关于php - 为什么 apache 将偏移量保存到 php-cli 保存虚拟内存地址的内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864703/
我在全局范围内安装了最新的 angular-cli,并且我的项目正在成功构建。 在阅读另一个问题的建议解决方案时,(https://github.com/angular/angular-cli/iss
根据official docs关于 .angular-cli.json 配置文件,仅支持 main、test、polyfills 作为 webpack 入口文件。 如何通过定义 .angular-cl
我想在s3存储桶中搜索文件名abc.zip,并且有将近60个存储桶,每个存储桶都有2到3个级别的子目录或文件夹。我尝试使用AWS CLI命令执行搜索,以下是我尝试过的命令,但即使文件存在于存储桶中,也
我正在尝试在 C++/CLI 中查找赋值运算符和复制构造函数的示例。我在 Google 上花了很多时间,但令人惊讶的是我找不到一个看起来很常见的例子。 最佳答案 .NET 语义没有复制构造函数或赋值运
我需要获取另一个窗口的句柄。 这是它的代码: private: System::Void btn_find_Click(System::Object^ sender, System::EventAr
有点好奇实际上有多少人使用 C++/CLI?那么有多少人在使用它呢?人们是否只在托管环境下寻找程序员的特定工作?围绕 c++/cli 的社区有多大?从我目前看到的情况来看,有不少语法变化,作为 C++
我正在阅读一些 C++/CLI Material ,并且遇到了文字字段的概念: literal int inchesPerFoot = 12; 这是否比 const 更可取,因为 const FIEL
通过 npm install -g angular-cli@latest 安装 Angular CLI (angular-cli@1.0.0-beta.16) 失败,出现以下错误 npm-debug.
我正在尝试在我的 Ember CLI 应用程序中配置适配器以根据环境使用不同的主机。在开发中,我希望它是默认的当前主机(让我通过 --proxy 选项自定义它,但在生产中我知道它将是 http://s
我最近开始使用 Angular/CLI 工具,我在执行文件时遇到了一个问题,那就是我运行时 ng serve 那么这个命令可以帮助我们在源文件中进行任何更改时自动重新加载站点,但在我的系统中它没有发生
是否有推荐的方法通过 c++ cli 包装 native c++ 库? 最佳答案 不确定是否一种尺寸适合所有人,但是,是的,这很大程度上是一个机械过程。您的 ref 类包装器应该声明一个私有(priv
我有一个关于为要在 C# 中使用的 native C++ 类创建 C++ CLI 包装器的问题。 这是一个示例代码: #include "stdafx.h" #pragma once using na
下面的代码打印 0 和 3。这是代码生成错误吗?我在 .NET 4.0 下使用 Visual Studio 2012 Update 3 RC 运行它 #include "stdafx.h" using
它是如何工作的?它是否有不同的部分 - 有些方法是托管的,有些是非托管的,它是否将每个方法都转换为托管的,试图保持所有东西都处于托管状态并在必须时进行互操作调用? 最佳答案 三种不同的compiler
如果我没记错的话,函数必须是 CLR 世界中类的成员,而全局函数在 C++/CLI 中是可能的。这是否意味着这些全局函数是某种隐藏的“全局”类的一部分?如果是这样,出于反射目的,人们将如何获取其类型?
如何在 Angular 中重建我的项目。我首先使用 ng build 构建它,但无法再次执行该命令,因为它不会让我更改文件夹。 我收到此错误消息: EPERM:不允许操作,lstat 是否有另一个命令
我遇到了两个相互引用的类的问题。我曾尝试使用接口(interface)来解决问题,但遇到了其他问题,例如类重新定义。我只是不确定如何正确执行此操作。 这是我正在做的事情的一个例子。注意:我已经去掉了所
我是 React.js 的新手,我正在尝试从 tutorialspoint 上的教程中学习但我遇到了错误。这是我执行 npm start 命令时控制台上的错误: C:\Users\HP\Desktop
我正在尝试将我的 angular cli 和 angular core 从 12 升级到 13,但看起来存在对等依赖性问题。有人遇到过这个问题吗? npx @angular/cli@13 update
我正在我的 ubuntu 上安装 influxdb_2.0.9,我按照这里的说明操作: https://docs.influxdata.com/influxdb/v2.0/install/?t=Lin
我是一名优秀的程序员,十分优秀!