Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux的调试_Linux_Assembly - Fatal编程技术网

Linux的调试

Linux的调试,linux,assembly,Linux,Assembly,我现在正在扩展我的x86汇编知识,学习的最佳工具之一是。当我学习汇编(过去4年)时,我使用的是Windows,但现在我使用的是Linux Ubuntu,调试工具仅适用于Windows。然后我想知道Linux是否有任何端口或等效端口 请记住,我不想调试我的代码,而是执行命令-r,-t,-e…gdb-这是Linux标准的调试器。它比DEBUG(如果你指的是旧的DOS工具)功能强大得多,如果你在Linux上编程,你至少应该学习如何使用它的基本知识。gdb几乎就是Linux平台上的调试器。您没有指定您需

我现在正在扩展我的x86汇编知识,学习的最佳工具之一是。当我学习汇编(过去4年)时,我使用的是Windows,但现在我使用的是Linux Ubuntu,调试工具仅适用于Windows。然后我想知道Linux是否有任何端口或等效端口


请记住,我不想调试我的代码,而是执行命令
-r
-t
-e

gdb-这是Linux标准的调试器。它比DEBUG(如果你指的是旧的DOS工具)功能强大得多,如果你在Linux上编程,你至少应该学习如何使用它的基本知识。

gdb几乎就是Linux平台上的调试器。您没有指定您需要的功能,但它可能有这些功能:)

我使用调试主要是为了组装而不是“调试”。。。如果这是你的目标

  • 是一个语法更相似的好汇编程序

  • 然后运行代码,允许反汇编,并检查内存


    • -r
      =
      信息寄存器

      -t
      =
      stepi

      -e
      =无直接等效物;塔维索写了一篇提供类似功能的文章

      debug
      在没有参数的情况下启动时,您可以使用一些空白的64k内存;GDB没有。无论如何,这只在DOS上才有意义;你必须从一些二进制文件开始

      也许像这样组装一些空白板岩

      $ echo .globl main >a.s $ echo main: >>a.s $ for i in {1..65536}; do echo 'int $3'; done >>a.s $ cc a.s $ gdb a.out (gdb) run $echo.globl main>a.s $echo main:>>a.s 在{1..65536}中的i为$;做回显'int$3';完成>>a.s $cc a.s $gdb a.out (gdb)运行
      改进了链接并指定了我想要的功能。很抱歉,现在我已经指定了我想要的功能。我听说汇编此代码的GAS后端设计用于接受GCC的(完美)输出—它的错误报告,因此对用户不友好。不过,我找不到这方面的参考资料。没关系:我们正在组装一个如此愚蠢和愚蠢的东西,无论如何都不可能失败-D这将创建一个对象,其中
      main
      只是一个64kB的断点序列(
      nop
      。字节0
      在我的测试中不起作用)。