Include Function Names (compiling) not working?

I always thought when you disable the option ‘Include Function Names’, the compiler would not use the Function names (and replace it with something else).
But I checked this with HexFiend and the names are still found in the app file.

Is this function broken or do I misunderstood the working of this?

Windows is confirmed since 2018: http://feedback.xojo.com/case/52927
But I think that this has been broken for a long time: <https://xojo.com/issue/5970>

Not good. Probably not important enough.
If no fix (is possible) just remove that option. :face_with_raised_eyebrow:

Maybe related to switching to the LLVM compiler?

I can confirm the names are included on macOS in Xojo 2021r3.1 independent of the setting.
Not a bad things as all my apps have it enabled.

For Windows, the setting seems to work here and we don’t get a stack trace if it’s turned off.

Do you mean a stackTrace within Xojo’s exception handler? Or a stack trace when the app crashes?

I looked on the RuntimeException.Stack.

So why isn’t this fixed. This is a security risk.

In fact, you can look here to see Greg O’s opinion of this 13 years ago:

[<https://xojo.com/issue/5965>](<https://xojo.com/issue/5965>)

Hello?

1 Like

This thread has been cleaned up a bit to remove discussion that violates the forum guidelines, and subsequently reopened.

3 Likes

I just did a quick test running it in the ide with a method called MooMoo123 and it was present in the exe, I tested it in windows using 2019r1.1 (my latest license) and its in there.

Renaming the functions will only stop casual “hackers”, if this feature doesn’t work, the concerning part is why it hasn’t been removed as it might be giving someone a false sense of “security”. That being said, there are legitimate reasons for using this feature beyond just “security”.

2 Likes

I always “trusted” that the symbols were being stripped and never checked it. This is a very, very, serious issue. I never obfuscated some crucial function names (and don’t want to) trusting in this broken, known, and not addressed security fail.

1 Like

You should do this with every important string imo.
Also renaming important functions to for example F0 can help making it harder to find.

Strings I do care as expected. Symbol names is stupid, that’s a compiler/obfuscator/linker job.

1 Like