Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Assembly instructions ( following the standard x 8 6 - 6 4 calling conventions ) : g: leaq - 8 ( % rdi ) ,

Assembly instructions (following the standard x86-64 calling conventions):
g:
leaq -8(%rdi),%rsi
leaq (%rdi,%rdi,2),%rdi
call f
ret
Corresponding C code skeleton:
long g(long z){
return f(,);
}
There is a specific argument to g that causes a Segmentation Fault.
You should be able to find the number from looking at the assembly code, but you can also confirm by putting the assembly code for g and f in a .s file along with the code below. Then change the argument that main calls g with, assemble to an executable with gcc, and run the program.
main:
movq $42,%rdi
call g
movq $0,%rax
ret
.LC0:
.text
.globl main
.type main, @function
Question 1
SUBMITTED
Argument
Which numeric argument to g causes a segfault?

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Programming With Visual Basic .NET

Authors: Carsten Thomsen

2nd Edition

1590590325, 978-1590590324

More Books

Students also viewed these Databases questions

Question

What is DDL?

Answered: 1 week ago