精华内容
下载资源
问答
  • 首先熟悉ATT的几条指令 -cd+文件夹名:打开指定文件夹: -ls:列出当前文件夹中的所有文件 ...创建code.c文件并对他进行编写,源代码如下: int accum=0; int sum(int x,int y) { int t=x+y; accum+...

    首先熟悉ATT的几条指令

    -cd+文件夹名:打开指定文件夹:

    -ls:列出当前文件夹中的所有文件

    -gedit:进行文件的修改编写

    -cat+文件名:对文件内容进行查看

    1、输入指令:gedit code.c

    创建code.c文件并对他进行编写,源代码如下:

    int accum=0;
    
    int sum(int x,int y)
    {
        int t=x+y;
        accum+=t;
        return t;
    }
    

    2、输入指令:gcc -O1 -S code.c(O为大写o)

    -O1代表采用第一级优化,运行这条指令将产生code.s的汇编文件。

    3、输入指令:cat code.s

    将会包含以下汇编代码文本。

    4、输入指令:gcc -O1 -c code.c

    将产生code.o二进制格式文件,无法直接查看。

    但可以通过反汇编器(将二进制格式文件反汇编为汇编代码文本)进行查看

    输入指令:objdump -d code.o

    将会查看到如下代码:

    其中2-5行最前面的数字0,4,8,e代表指令被存储的地址,冒号右边代表二进制格式指令,最右边的汇编指令对应于每一条二进制指令。

    展开全文
  • 今天遇到一个问题,代码在phpstorm中是正确样式,但是到了网页上查看源码样式就乱了,如下图 浏览中查看源码如下:   解决办法:  用PHPStrom编辑器选择“file”->“Line separators”->&...

    今天遇到一个问题,代码在phpstorm中是正确样式,但是到了网页上查看源码样式就乱了,如下图

    浏览中查看源码如下:

     

    解决办法:

        用PHPStrom编辑器选择“file”->“Line separators”->"CRLF-Windows(\r\n)"即可

     

    更多内容请查看 原文地址https://www.codelovers.cn/article/20180606105750.html

    展开全文
  • C++ 汇编代码查看

    千次阅读 2019-08-28 15:26:48
    文章目录gcc 编译为汇编代码使用 as 展示汇编代码使用 objdump 进行反...原始C++代码如下: #include "stdio.h" class Animal { public: virtual void name() { printf("I'm Animal\n"); } }; class Cat : public...

    gcc 编译为汇编代码

    原始C++代码如下:

    #include "stdio.h"
    
    class Animal {
    public:
        virtual void name() { printf("I'm Animal\n"); }
    };
    
    class Cat : public Animal {
    public:
        virtual void name() override { printf("I'm Cat\n"); }
    };
    
    void func(Animal *animal) {
        animal->name();
    }
    
    int main(void) {
        func(new Animal());
        func(new Cat());
        return 0;
    }
    
    

    编译成汇编代码:

    g++ -S test.cpp -o test.s
    

    查看:

    cat test.s
    

    部分结果:

    main:
    .LFB3:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        pushq   %rbx
        subq    $8, %rsp
        .cfi_offset 3, -24
    

    你发现你完全看不懂

    使用 as 展示汇编代码

    另一种更好的做法是使用as
    编译成汇编代码:

    g++ -S -fverbose-asm -g test.cpp -o test.s
    

    查看:

    as -alhnd test.s
    

    现在是把代码和汇编代码对应起来了:

      16:test.cpp      **** 
      17:test.cpp      **** int main(void) {
     202                    .loc 1 17 16
    .........
     212                # test.cpp:18:     func(new Animal());
      18:test.cpp      ****     func(new Animal());
     213                    .loc 1 18 21
     214 002b BF080000      movl    $8, %edi    #,
     214      00
     215 0030 E8000000      call    _Znwm   #
     215      00
     216 0035 4889C3        movq    %rax, %rbx  # tmp86, _3
     217 0038 48C70300      movq    $0, (%rbx)  #, MEM[(struct Animal *)_4]._vptr.Animal
     217      000000
     218 003f 4889DF        movq    %rbx, %rdi  # _3,
     219 0042 E8000000      call    _ZN6AnimalC1Ev  #
     219      00
     220                # test.cpp:18:     func(new Animal());
    

    这种情况看汇编代码比刚才更清楚一些。

    使用 objdump 进行反汇编

    如果直接编成机器码,需要使用objdump进行反汇编:

    g++ -save-temps -fverbose-asm -g -o test test.cpp
    objdump -S --disassemble test
    

    效果如下:

    0000000000400654 <main>:
    
    int main(void) {
      400654:   55                      push   %rbp
      400655:   48 89 e5                mov    %rsp,%rbp
      400658:   53                      push   %rbx
      400659:   48 83 ec 08             sub    $0x8,%rsp
        func(new Animal());
      40065d:   bf 08 00 00 00          mov    $0x8,%edi
      400662:   e8 d9 fe ff ff          callq  400540 <_Znwm@plt>
      400667:   48 89 c3                mov    %rax,%rbx
      40066a:   48 c7 03 00 00 00 00    movq   $0x0,(%rbx)
      400671:   48 89 df                mov    %rbx,%rdi
      400674:   e8 6d 00 00 00          callq  4006e6 <_ZN6AnimalC1Ev>
      400679:   48 89 df                mov    %rbx,%rdi
      40067c:   e8 b1 ff ff ff          callq  400632 <_Z4funcP6Animal>
    

    感觉使用objdump效果最好,但还有效果更好的。

    使用 godbolt 可视化结果

    这个网站: https://godbolt.org
    真的非常好用,效果如下:

    在这里插入图片描述
    非常炫酷,而且一一对应。

    参考:

    展开全文
  • 用gdb 查看,执行汇编代码

    万次阅读 2014-05-23 14:45:27
    用gdb 查看汇编代码, 采用disassemble 和 x 命令。 nexti, stepi 可以单步指令执行 如下例: ------------------------------------------------------------ 源代码: ----------------------------------------...

    用gdb 查看汇编代码, 采用disassemble 和 x 命令。 nexti, stepi 可以单步指令执行

    如下例:

    ------------------------------------------------------------
    源代码:
    ------------------------------------------------------------
    [root@hjj ~]# cat 1.c
    #include <stdio.h>

    int main(int argc, char *argv[])
    {
        int size=sizeof("hjj");
        printf("size is %d\n",size);
        return 0;
    }

    ------------------------------------------------------------
    编译
    ------------------------------------------------------------
    ot@hjj ~]# gcc -g3 -o 1 1.c

    ------------------------------------------------------------
    调试
    ------------------------------------------------------------
    [root@hjj ~]# gdb 1
    GNU gdb (GDB) 7.6
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-unknown-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    Reading symbols from /root/1...done.
    (gdb) b main
    Breakpoint 1 at 0x4004d3: file 1.c, line 5.
    (gdb) r
    Starting program: /root/1

    Breakpoint 1, main (argc=1, argv=0x7fffffffe5c8) at 1.c:5
    5        int size=sizeof("hjj");

    ------------------------------------------------------------

    观察. 用disasseble.

    /m 源码和汇编一起排列

    /r 还可以看到16进制代码

    ------------------------------------------------------------
    (gdb) disassemble /m main
    Dump of assembler code for function main:
    4    {
       0x00000000004004c4 <+0>:    push   %rbp
       0x00000000004004c5 <+1>:    mov    %rsp,%rbp
       0x00000000004004c8 <+4>:    sub    $0x20,%rsp
       0x00000000004004cc <+8>:    mov    %edi,-0x14(%rbp)
       0x00000000004004cf <+11>:    mov    %rsi,-0x20(%rbp)

    5        int size=sizeof("hjj");
    => 0x00000000004004d3 <+15>:    movl   $0x4,-0x4(%rbp)

    6        printf("size is %d\n",size);
       0x00000000004004da <+22>:    mov    $0x4005f8,%eax
       0x00000000004004df <+27>:    mov    -0x4(%rbp),%edx
       0x00000000004004e2 <+30>:    mov    %edx,%esi
       0x00000000004004e4 <+32>:    mov    %rax,%rdi
       0x00000000004004e7 <+35>:    mov    $0x0,%eax
       0x00000000004004ec <+40>:    callq  0x4003b8 <printf@plt>

    7        return 0;
       0x00000000004004f1 <+45>:    mov    $0x0,%eax

    8    }
       0x00000000004004f6 <+50>:    leaveq
       0x00000000004004f7 <+51>:    retq   

    End of assembler dump.
    ------------------------------------------------------------
    用 x/i 可以查看指令
    ------------------------------------------------------------
    (gdb) x/15i main
       0x4004c4 <main>:    push   %rbp
       0x4004c5 <main+1>:    mov    %rsp,%rbp
       0x4004c8 <main+4>:    sub    $0x20,%rsp
       0x4004cc <main+8>:    mov    %edi,-0x14(%rbp)
       0x4004cf <main+11>:    mov    %rsi,-0x20(%rbp)
    => 0x4004d3 <main+15>:    movl   $0x4,-0x4(%rbp)
       0x4004da <main+22>:    mov    $0x4005f8,%eax
       0x4004df <main+27>:    mov    -0x4(%rbp),%edx
       0x4004e2 <main+30>:    mov    %edx,%esi
       0x4004e4 <main+32>:    mov    %rax,%rdi
       0x4004e7 <main+35>:    mov    $0x0,%eax
       0x4004ec <main+40>:    callq  0x4003b8 <printf@plt>
       0x4004f1 <main+45>:    mov    $0x0,%eax
       0x4004f6 <main+50>:    leaveq
       0x4004f7 <main+51>:    retq   
    ------------------------------------------------------------
    $pc 指向当前程序运行地址
    ------------------------------------------------------------
    (gdb) x/5i $pc
    => 0x4004d3 <main+15>:    movl   $0x4,-0x4(%rbp)
       0x4004da <main+22>:    mov    $0x4005f8,%eax
       0x4004df <main+27>:    mov    -0x4(%rbp),%edx
       0x4004e2 <main+30>:    mov    %edx,%esi
       0x4004e4 <main+32>:    mov    %rax,%rdi
    (gdb)
    --------------------------------------------------------------------------------
    用gdb 调试汇编代码(二进制代码).
    查看:
    disassembler $pc

    //只显示我们关注的运行指针附近的汇编代码

    disassembler $pc,+length
    display/i $pc
    x/i $pc
    执行: 单指令。
    ni;
    si:

    用 p $eax

    p $edi 等可以查看寄存器.

    在gdb中 敲入help layout

    (gdb) help layout
    Change the layout of windows.
    Usage: layout prev | next | <layout_name>
    Layout names are:
       src   : Displays source and command windows.
       asm   : Displays disassembly and command windows.
       split : Displays source, disassembly and command windows.
       regs  : Displays register window. If existing layout
               is source/command or assembly/command, the
               register window is displayed. If the
               source/assembly/command (split) is displayed,
               the register window is displayed with
               the window that has current logical focus.

    然后你可以用layout 去调试,很方便, 例如 layout asm.

    还是用vim 最为gdb调试前端比较好,如果是源码级调试就很爽了.可以直接查看寄存器内容,

    例如: print $eax

     print $es

     

    展开全文
  •  代码如下:  # yum -y install policycoreutils-python  用法:  semanage命令用来查询与修改SELinux默认目录的安全上下文。  semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec  semanage...
  • eclipse中怎么查看代码

    千次阅读 2019-04-11 11:36:00
    下图为Eclipse Class Decompiler的首选项页面,可以选择缺省的反编译器工具,并进行反编译器的基本设置。...重用缓存代码:只会反编译一次,以后每次打开该类文件,都显示的是缓存的反编译代码。 ...
  • 1.下载安装sbt ... 下载完成解压 ...配置文件内容如下 [repositories] local aliyun: http://maven.aliyun.com/nexus/content/groups/public/ typesafe: http://repo.typesafe.com/typesaf...
  • 分享知识 传递快乐 JS禁止浏览器打开控制台或查看代码 在做支付的时候为了保证提交参数的安全、以及...参考代码如下: window.onload = function () { document.onkeydown = function () { var e = wi...
  • vs平台如何查看汇编代码

    千次阅读 2017-11-23 14:12:45
    方法如下,先创建一个C++ Project,然后加入上面的代码,在main函数或者其他地方设置断点,注意是Debug版本,否则代码经过优化会多很多。然后按钮F5或者点击Debug->Start Debuging程序会走到main处停下。然后点击按钮...
  • Eclipse 查看代码Source not found

    千次阅读 多人点赞 2018-07-17 12:40:23
    1. Eclipse 快捷键 ctrl + 鼠标左键可以查看Java 类/函数的源代码   2. 有时Eclipe配置不好时,会出现source not found的问题。解决方法如下: (1) 打开window种的preference (2) 选择Java中的 Installed ...
  • 彻底禁止查看网页源代码

    千次阅读 2011-02-17 21:08:38
    查看源代码的方式 ---- 要禁止访问者查看网页源代码,我们首先要了解一下查看源代码的方式(以IE 5.0为例)。一是右键菜单方式;...---- 现在,很多网页采用如下代码屏蔽右键菜单: < Script Langu...
  • 查看python中代码运行时间

    千次阅读 2018-10-29 09:51:17
     用法代码如下: import time start = time() """ ###要查看代码部分### """ end = time() print("Running time: %s seconds"%(end - start))  ...
  • Android Studio查看代码编辑历史

    千次阅读 2018-09-12 14:04:50
    Android Studio 提供了一个功能,可以很好的查看近期代码的编辑历史,步骤如下: 选中需要查看的项目或者是文件----&gt;右键选择Local History-----&gt;选择show history ...
  • 在vs如何查看汇编代码

    千次阅读 2016-06-20 20:26:27
    方法如下,先创建一个工程,然后加入代码,在main函数或者其他地方设置断点,注意是Debug版本,否则代码经过优化会多很多。然后按钮F5或者点击Debug->Start Debuging程序会走到main处停下。 然后点击按钮 Debug-...
  • VC中查看汇编代码

    千次阅读 2008-06-18 16:51:00
    有2种方法第一、还可以在命令行方式下 采用如下命令: c:/...>cl /FA name.cpp 这样就会在当前文件夹下产生name.asm 和name.obj 第二、进入Debug模式查看汇编代码,具体如下:Build -> Start Debug , 进入...
  • Chrome 的查看代码

    千次阅读 2014-03-31 11:38:57
    今天打算把html解析器重构一下,所以随便找了个网页做测试,测试的过程中发现这个网页存在没有闭合的标签。 但是看页面效果却很正常,由于是公司的网站,所以看了看程序,程序没问题,又测试了...原始的代码不是这样
  • 获取隐藏了部分内容的网页源代码,审查元素可以,查看代码不行。在学习python爬虫。 故事背景:最近一个朋友想批量下载“巨潮资讯网”上有关“股票质押的”的PDF,拜托我之后,我想用python写一个爬虫工具。 原...
  • 如何查看linux命令源代码和函数源代码 分类: unix/linux 2013-01-22 10:06 683人阅读 评论(1) 收藏 举报 用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码...
  • 编写代码如下,命名为CPPTest2.cpp int main() { const int i = 0; return 0; } 我使用的是win7 64位操作系统,VS2015,可以在开始-&gt;所有程序-&gt;Visual Studio 2015-&gt;Visual Studio Tools...
  • gdb 查看,执行汇编代码

    千次阅读 2019-08-03 17:12:13
    用gdb 查看汇编代码, 采用disassemble 和 x 命令。 nexti, stepi 可以单步指令执行 如下例: ------------------------------------------------------------ 源代码: ----------------------------------------...
  • Safari查看网页源代码的方法如下: 第一步:打开safari 的 偏好设置 第二步:找到高级选项卡,然后“在菜单栏中显示开发菜单” 前面打勾。 第三步:然后打开网页 在菜单栏中的下拉中选择 显示原文件 第四...
  • eclipse关于无法查看代码解决法案

    千次阅读 2018-07-26 17:36:42
    今天在查看jar包时候,发现查看失败,显示The JAR flie D:\jre\lib\rt.jar . has no source attachment 我这个是属于本地的问题,解决方法如下: 点击那个Attach Source... 选择那个External location — —...
  • 默认是没有包含Android.jar源代码的,例如当我们想查看类Activity的代码时,我们通常会得到这样的一个界面:这个时候我们如果想在项目中查看android中的类的代码,就得采用其他的方法如下的方法ADT搜寻andr
  • Mac-safari查看网页源代码的方法

    千次阅读 2019-09-16 23:33:50
    如果没有"查看源文件选项",那么根据如下步骤操作: 打开safari 的 偏好设置 选择高级选项卡,勾选“在菜单栏中显示开发菜单” 最后直接在需要查看代码的safari上直接右键页面,点击"查看源文件选项" ...
  • 查看git 提交代码总行数

    千次阅读 2019-11-29 17:45:50
    版权声明:本文为博主原创文章,遵循 CC...早上收到pmo邮件,要求统计某个时间范围内代码提交行数,一开始是懵逼的,不只如何下手,后来想到git这么强大的工具,这点小事应该能做到,于是乎搜索了一下,命令如下: ...
  • 在申请软著的时候需要提供应用的源代码总行数,通过Android studio可以查看,具体步骤如下: 1.Ctrl+Shift+A 弹出如下界面,选中Find in Path 双击 2.弹出如下窗口,按照图中绿框操作即可查询应用的代码总行数-...
  • 查看android源代码方法

    2012-09-13 16:51:42
    1.先要下载相应版本的android源代码,具体地址如下:  ▼android-1.5的下载地址有如下   http://rgruet.free.fr/public/android-1.5-cupcake-src.zip (21.6MB)   ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,681
精华内容 7,872
关键字:

查看如下代码