I'm a little skeptical of the claim that detecting function start boundaries is undecidable. What, precisely, is the language/decision prob?
-
Show this thread
-
I propose L = {⟨𝐵, 𝑎⟩ | 𝐵 is an executable and 𝑎 is the address of the start of a function}. But you need to define what a function is.
1 reply 0 retweets 0 likesShow this thread -
Replying to @stevecheckoway
That's not necessarily easy. You can clearly do it restricted to external (ABI) functions given a grid-aligned ISA tho.
1 reply 0 retweets 0 likes -
Replying to @RichFelker
I couldn't think of a good definition of a function that wasn't "the compiler intended this to be a function."
2 replies 0 retweets 2 likes -
Replying to @stevecheckoway
One obvious slightly stupid one: the destination of a call instruction.
1 reply 0 retweets 0 likes -
Replying to @RichFelker
Of course, that fails for x86 PIC. call .get_pc .get_pc: pop ebx .get_pc isn't a function.
1 reply 0 retweets 0 likes
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.