相关疑难解决方法(0)

在GDB中显示当前汇编指令

我正在GDB中进行一些汇编级调试.有没有办法让GDB以与显示当前源代码行相同的方式向我显示当前的汇编指令?每个命令后的默认输出如下所示:

0x0001433f      990         Foo::bar(p);
Run Code Online (Sandbox Code Playgroud)

这给了我当前指令的地址,但是我必须继续参考输出,disassemble以便查看我当前正在执行哪条指令.

assembly gdb

169
推荐指数
7
解决办法
19万
查看次数

如何在C++中的main()内部声明什么,并在编译后有一个工作的应用程序?

在一次采访中,我遇到了一个问题:

您的朋友给了您一个源代码文件,该文件在控制台上打印斐波那契数字.请注意,main()块为空,并且其中没有任何语句.

解释这是如何可能的(提示:全局实例!)

我真的想知道这个,这样的事情怎么可能!

c++

85
推荐指数
3
解决办法
3715
查看次数

停止GDB中的第一个机器代码指令

将可执行文件加载到gdb后,如何在执行第一条指令之前在入口点中断?

我正在分析的可执行文件是一段加密的恶意软件,所以break main绝对没有.

gdb reverse-engineering

54
推荐指数
5
解决办法
3万
查看次数

在main之前调用一个函数

可能重复:
main()是否真的启动了C++程序?

可以在程序启动前调用我的函数吗?我该怎么做这项工作C++还是C

c c++ program-entry-point startup

40
推荐指数
4
解决办法
3万
查看次数

什么是c ++中对象的动态初始化?

什么是c ++中对象的动态初始化?

请用一个简单的例子来解释......

c++ initialization dynamic object

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

在C++中没有静态构造函数的基本原理是什么?

在C++中没有静态构造函数的基本原理是什么?

如果允许,我们将以非常有组织的方式在一个地方初始化其中的所有静态成员,如下所示:

//illegal C++
class sample
{
public:

    static int some_integer;
    static std::vector<std::string> strings;

    //illegal constructor!
    static sample()
    {
       some_integer = 100;
       strings.push_back("stack");
       strings.push_back("overflow");
    }
};
Run Code Online (Sandbox Code Playgroud)

在静态构造函数的缺失中,很难有静态向量,并用值填充它,如上所示.静态构造函数优雅地解决了这个问题.我们可以以非常有组织的方式初始化静态成员.

那么为什么'C++没有静态构造函数?毕竟,其他语言(例如,C#)具有静态构造函数!

c++ language-features constructor language-design static-constructor

29
推荐指数
4
解决办法
6479
查看次数

如何用gcc改变C程序的入口点?

如何更改用gcc编译的C程序的入口点?
就像在下面的代码中一样

#include<stdio.h>
int entry()  //entry is the entry point instead of main
 {
   return 0;
 }
Run Code Online (Sandbox Code Playgroud)

c program-entry-point entry-point

27
推荐指数
3
解决办法
3万
查看次数

在main()之前可能需要做什么样的操作

我遇到了这个问题,询问如何在C中的main()之前执行代码,并提到C++的策略.我主要住在应用程序空间,所以在main()之前执行从未发生过.什么样的东西需要这种技术?

c c++ program-entry-point

19
推荐指数
2
解决办法
516
查看次数

避免C程序中的主(入口点)

是否可以避免C程序中的入口点(主).在下面的代码中,是否可以在func()不通过main()以下程序调用via的情况下调用该调用?如果是,如何做,何时需要,为什么要给出这样的规定?

int func(void)
{
     printf("This is func \n");
     return 0;
}

int main(void)
{
     printf("This is main \n");
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

c compiler-construction operating-system function entry-point

17
推荐指数
3
解决办法
7874
查看次数

什么在main()之前运行?

在msvc8上测试后,我发现:

  1. 将GetCommandLine()解析为argc和argv
  2. 标准C库初始化
  3. C++全局变量的构造函数

在进入main()之前调用这三个东西.

我的问题是:

  1. 当我将程序移植到不同的编译器(gcc或armcc)或不同的平台时,这个执行顺序会不同吗?
  2. 标准C库初始化有什么作用?到目前为止,我知道setlocale()是必须的.
  3. 在全局变量的C++构造函数中调用标准C函数是否安全?

c++

12
推荐指数
2
解决办法
1886
查看次数