Stack dump of the compiler?


#1

Hi all,
I've noticed recent build of swift compiler doesn't show the stack dump on
crash.

Here is the result with October 25, 2016 snapshot.
https://gist.github.com/rintaro/cb694898821fbbe8b02734862eb69534

On macOS, the dump completely doesn't show up.
On Linux, the dump shows up, but without symbols.

As for Linux, I figured out that it's because of recent change in
CMakeList.txt
cmake_minimum_required(VERSION 3.4.3)
Specifically, the policy change of CMP0065
https://cmake.org/cmake/help/v3.4/policy/CMP0065.html
backtrace_symbols_fd() needs symbols exported.

As for macOS, I'm not sure why.

I don't know what is the right way to fix this.
cmake_policy(SET CMP0065 OLD)
would fix the Linux build but ...

Any thought?


(Flamedoge) #2

Do not add flags to export symbols from executables without the

ENABLE_EXPORTS
<https://cmake.org/cmake/help/v3.4/prop_tgt/ENABLE_EXPORTS.html#prop_tgt:ENABLE_EXPORTS>
target
property.

set_target_properties(${swift_binaries} properties ENABLE_EXPORTS 1) ?
I don't know if it's this simple though.

···

On Tue, Oct 25, 2016 at 8:51 PM, rintaro ishizaki via swift-dev < swift-dev@swift.org> wrote:

Hi all,
I've noticed recent build of swift compiler doesn't show the stack dump on
crash.

Here is the result with October 25, 2016 snapshot.
https://gist.github.com/rintaro/cb694898821fbbe8b02734862eb69534

On macOS, the dump completely doesn't show up.
On Linux, the dump shows up, but without symbols.

As for Linux, I figured out that it's because of recent change in
CMakeList.txt
cmake_minimum_required(VERSION 3.4.3)
Specifically, the policy change of CMP0065
https://cmake.org/cmake/help/v3.4/policy/CMP0065.html
backtrace_symbols_fd() needs symbols exported.

As for macOS, I'm not sure why.

I don't know what is the right way to fix this.
cmake_policy(SET CMP0065 OLD)
would fix the Linux build but ...

Any thought?

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


#3

set_target_properties(${swift_binaries} properties ENABLE_EXPORTS 1) ?
I don't know if it's this simple though.

Yeah, that should work as well.
But, I'm not sure which tools should be `ENABLE_EXPORT`ed.

···

2016-10-27 3:04 GMT+09:00 Flamedoge <code.kchoi@gmail.com>:

> Do not add flags to export symbols from executables without the
ENABLE_EXPORTS
<https://cmake.org/cmake/help/v3.4/prop_tgt/ENABLE_EXPORTS.html#prop_tgt:ENABLE_EXPORTS> target
property.

set_target_properties(${swift_binaries} properties ENABLE_EXPORTS 1) ?
I don't know if it's this simple though.

On Tue, Oct 25, 2016 at 8:51 PM, rintaro ishizaki via swift-dev < > swift-dev@swift.org> wrote:

Hi all,
I've noticed recent build of swift compiler doesn't show the stack dump
on crash.

Here is the result with October 25, 2016 snapshot.
https://gist.github.com/rintaro/cb694898821fbbe8b02734862eb69534

On macOS, the dump completely doesn't show up.
On Linux, the dump shows up, but without symbols.

As for Linux, I figured out that it's because of recent change in
CMakeList.txt
cmake_minimum_required(VERSION 3.4.3)
Specifically, the policy change of CMP0065
https://cmake.org/cmake/help/v3.4/policy/CMP0065.html
backtrace_symbols_fd() needs symbols exported.

As for macOS, I'm not sure why.

I don't know what is the right way to fix this.
cmake_policy(SET CMP0065 OLD)
would fix the Linux build but ...

Any thought?

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev


(Michael Gottesman) #4

Are you talking about the prettyprint stack dump?

I think that may have gone away after the recent update to the newer llvm/clang. I think there is a bug to look into what happened here, but no one has had the time to look into it.

Michael

···

On Oct 26, 2016, at 8:53 PM, rintaro ishizaki via swift-dev <swift-dev@swift.org> wrote:

> set_target_properties(${swift_binaries} properties ENABLE_EXPORTS 1) ?
> I don't know if it's this simple though.

Yeah, that should work as well.
But, I'm not sure which tools should be `ENABLE_EXPORT`ed.

2016-10-27 3:04 GMT+09:00 Flamedoge <code.kchoi@gmail.com <mailto:code.kchoi@gmail.com>>:
> Do not add flags to export symbols from executables without the ENABLE_EXPORTS <https://cmake.org/cmake/help/v3.4/prop_tgt/ENABLE_EXPORTS.html#prop_tgt:ENABLE_EXPORTS> target property.

set_target_properties(${swift_binaries} properties ENABLE_EXPORTS 1) ?
I don't know if it's this simple though.

On Tue, Oct 25, 2016 at 8:51 PM, rintaro ishizaki via swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:
Hi all,
I've noticed recent build of swift compiler doesn't show the stack dump on crash.

Here is the result with October 25, 2016 snapshot.
https://gist.github.com/rintaro/cb694898821fbbe8b02734862eb69534

On macOS, the dump completely doesn't show up.
On Linux, the dump shows up, but without symbols.

As for Linux, I figured out that it's because of recent change in CMakeList.txt
cmake_minimum_required(VERSION 3.4.3)
Specifically, the policy change of CMP0065
https://cmake.org/cmake/help/v3.4/policy/CMP0065.html
backtrace_symbols_fd() needs symbols exported.

As for macOS, I'm not sure why.

I don't know what is the right way to fix this.
cmake_policy(SET CMP0065 OLD)
would fix the Linux build but ...

Any thought?

_______________________________________________
swift-dev mailing list
swift-dev@swift.org <mailto:swift-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev