小编com*_*fan的帖子

7
推荐指数
1
解决办法
1848
查看次数

为什么在64位架构上对齐是16字节?

(gdb) disas foo
Dump of assembler code for function foo:
0x00000000004004a8 <foo+0>: push   %rbp
0x00000000004004a9 <foo+1>: mov    %rsp,%rbp
0x00000000004004ac <foo+4>: mov    0x13c(%rip),%eax        # 0x4005ee <__dso_handle+30>
0x00000000004004b2 <foo+10>:    mov    %eax,-0x10(%rbp)
0x00000000004004b5 <foo+13>:    lea    -0x10(%rbp),%rax
0x00000000004004b9 <foo+17>:    add    $0x18,%rax
0x00000000004004bd <foo+21>:    mov    %rax,%rdx
0x00000000004004c0 <foo+24>:    mov    $0x400498,%eax
0x00000000004004c5 <foo+29>:    mov    %eax,(%rdx)
0x00000000004004c7 <foo+31>:    leaveq 
0x00000000004004c8 <foo+32>:    retq   
(gdb) l foo
8   void foo() {
9       char overme[4] = "WOW";
10      *(int*)(overme+24) = (int)bad;
11  }
Run Code Online (Sandbox Code Playgroud)

为什么不只是8个字节?

c x86-64 alignment

7
推荐指数
1
解决办法
3346
查看次数

怎么理解这个?

这是来自这个问题.

 gcc -c test.s
 objcopy -O binary test.o test.bin
Run Code Online (Sandbox Code Playgroud)

test.o和之间有什么区别test.bin

.text
    call start
    str:
        .string "test\n"
    start:
    movl    $4, %eax
    movl    $1, %ebx
    pop     %ecx
    movl    $5, %edx
    int     $0x80
    ret
Run Code Online (Sandbox Code Playgroud)

上面做了什么?

assembly objcopy

6
推荐指数
2
解决办法
836
查看次数

/usr/lib64/libc.so是如何生成的?

[root@xx test]# cat /usr/lib64/libc.so
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a  AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) )
Run Code Online (Sandbox Code Playgroud)

谁知道这种东西是如何产生的?

linux glibc ld

6
推荐指数
1
解决办法
5024
查看次数

到底什么是子系统?

我正在读一本书,书中说有这些子系统:

win32,os/2,posix,etc..
Run Code Online (Sandbox Code Playgroud)

但我对这些符号没有任何感性认识,你能用简短的话解释一下吗?

terminology subsystem

6
推荐指数
2
解决办法
3518
查看次数

哎呀,这对c意味着什么?

if ( sscanf( line, "%[^ ] %[^ ] %[^ ]", method, url, protocol ) != 3 )...
Run Code Online (Sandbox Code Playgroud)

上面那种格式很奇怪,它在做什么?

c

6
推荐指数
1
解决办法
257
查看次数

什么是perl的调试器?

我来自PHP,我使用zenddebugger来调试PHP.

我该如何调试perl?

debugging perl

6
推荐指数
3
解决办法
194
查看次数

那些将在firefox中打开新浏览器的链接的神奇之处是什么?

<a ... target="_blank">...</a>
Run Code Online (Sandbox Code Playgroud)

这种链接只打开一个新标签,但有些网站会打开一个新的浏览器实例,有什么诀窍?

html anchor

6
推荐指数
1
解决办法
129
查看次数

Perv中的Schwartzian变换?

my @output =
map $_->[0],
sort{$a->[1] <=> $b->[1]}
map [$_,-s $_],     
@array;   
Run Code Online (Sandbox Code Playgroud)

有人可以更详细地解释代码吗?我不能得到它的头或尾..

perl

6
推荐指数
1
解决办法
1522
查看次数

(char *)0 在 C 中意味着什么?

if ( fgets( line, sizeof(line), stdin ) == (char*) 0 )...
Run Code Online (Sandbox Code Playgroud)

我不明白这一行的作用,有人知道吗?

c syntax

5
推荐指数
1
解决办法
9663
查看次数

标签 统计

c ×3

perl ×2

alignment ×1

anchor ×1

assembly ×1

debugging ×1

glibc ×1

html ×1

javascript ×1

ld ×1

linux ×1

objcopy ×1

subsystem ×1

syntax ×1

terminology ×1

x86-64 ×1