You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int func()
{
char c = 'b';
char str1[8];
memset(str1, c, 8);
return 0;
}
int main()
{
func();
return 0;
}
On a 32-bit architecture, when I compile this code into an object file and disassemble it using the objdump tool, the generated assembly instructions do not have the __stack_chk_fail function call, however arrch64 not, when target is arrch64 or x86.
llvm-objdump -d demo.o
The corresponding binary files of 32bit and arrch64 are as follows: demo.zip
The text was updated successfully, but these errors were encountered:
On a 32-bit architecture, when I compile this code into an object file and disassemble it using the objdump tool, the generated assembly instructions do not have the __stack_chk_fail function call, however arrch64 not.
Both 32-bit architecture and arrch64 directly generated assembly instructions have __stack_chk_fail function call https://godbolt.org/z/cPvhj3n4b
64bit:
00000000000007f0 :
7f0: d100c3ff sub sp, sp, #48
.......
848: 14000001 b 0x84c <func+0x5c> 84c: 97ffff95 bl 0x6a0 __stack_chk_fail@plt <<<----- There is the difference
850: 2a1f03e0 mov w0, wzr
854: a9427bfd ldp x29, x30, [sp, #32]
858: 9100c3ff add sp, sp, #48
85c: d65f03c0 ret
Zhenhang1213
changed the title
[tool][objdump] llvm-objdump in arrch32 disassembly without __stack_chk_fail while applying -fstack-protector
[tool][objdump] llvm-objdump in arrch32 disassembly couldn't print callee symbol, just only address
Feb 4, 2024
On a 32-bit architecture, when I compile this code into an object file and disassemble it using the objdump tool, the generated assembly instructions do not have the __stack_chk_fail function call, however arrch64 not, when target is arrch64 or x86.
llvm-objdump -d demo.o
The corresponding binary files of 32bit and arrch64 are as follows:
demo.zip
The text was updated successfully, but these errors were encountered: