大约有 224 项符合查询结果(耗时:0.0347秒) [XML]
Try-catch speeding up my code?
...le stores and the way the JIT compiler does register scheduling in the corresponding x86 code. The result is suboptimal code generation on the loads and stores of the locals.
For some reason unclear to all of us, the problematic code generation path is avoided when the JITter knows that the block i...
What is the purpose of the EBP frame pointer register?
...ocal variable or an argument is at with a single constant offset. Although ESP's value changes over the course of execution, EBP remains the same making it possible to reach the same variable at the same offset (such as first parameter will always be at EBP+8 while ESP offsets can change significant...
Difference between passing array and array pointer into function in C
... type derivation, then for each call to the function, the value of the corresponding
actual argument shall provide access to the first element of an array with at least as many
elements as specified by the size expression.
So, in short, any function parameter declared as T a[] or T a[N] is treated...
Do sealed classes really offer performance Benefits?
... = new NormalClass();
00000000 push ebp
00000001 mov ebp,esp
00000003 sub esp,8
00000006 cmp dword ptr ds:[00585314h],0
0000000d je 00000014
0000000f call 70032C33
00000014 xor edx,edx
00000016 mov dword ptr [ebp-4],edx
0...
Explain the concept of a stack frame in a nutshell
... stack is composed of 1 or many several stack frames. Each stack frame corresponds to a call to a function or procedure which has not yet terminated with a return.
To use a stack frame, a thread keeps two pointers, one is called the Stack Pointer (SP), and the other is called the Frame Pointer (FP...
Is volatile expensive?
...R-133 Cookbook for Compiler Writers about the implementation of volatile, especially section "Interactions with Atomic Instructions" I assume that reading a volatile variable without updating it needs a LoadLoad or a LoadStore barrier. Further down the page I see that LoadLoad and LoadStore are eff...
GDB corrupted stack frame - How to debug?
...ff the stack. In 32-bit x86 code you just do:
(gdb) set $pc = *(void **)$esp
(gdb) set $esp = $esp + 4
With 64-bit x86 code you need
(gdb) set $pc = *(void **)$rsp
(gdb) set $rsp = $rsp + 8
Then, you should be able to do a bt and figure out where the code really is.
The other 1% of the time,...
String literals: Where do they go?
...rt literals, I could see the compiler generating code such as movb $65, 8(%esp); movb $66, 9(%esp); movb $0, 10(%esp) for the string "AB", but the vast majority of the time, it will be in a non-code segment such as .data or .rodata or the like (depending on whether or not the target supports read-on...
How can one see content of stack with GDB?
...o
To read the memory at given addresses you should take a look at x
x/x $esp for hex x/d $esp for signed x/u $esp for unsigned etc. x uses the format syntax, you could also take a look at the current instruction via x/i $eip etc.
...
Is errno thread-safe?
...0: 55 push ebp
1: 89 e5 mov ebp,esp
3: 83 e4 f0 and esp,0xfffffff0
6: e8 fc ff ff ff call 7 <main+0x7> ; get address of errno in EAX
b: c7 00 00 00 00 00 mov DWORD PTR [eax],0x0 ; store 0 in errno
11: b8 00...