Our Android project uses an external build system based on custom jam scripts and not the build scripts included within the Android NDK.
We strip the lib.so that is packaged within the APK and keep an external version of the lib.so that includes the debug symbols. The location of this lib.so is added to Additional Library Symbols Directories in the project properties.
Once our project solution is built we attempt to run the Nsight Tegra Debugger by pressing the play button. Even though Nsight is pointed to the location of the external lib.so containing debug symbols we only get disassembly and cannot breakpoint.
We noticed when running the Nsight Tegra Debugger that our external lib.so file containing debug symbols gets stripped. We do not understand why. Using the tool Procmon we can see during the beginning stages of Nsight a call to arm-linux-androideabi-objcopy is made with the flag -S which strips the lib.so. We do not understand what is making this call or why.
I have made a HelloWorld project using the Android Project (External Build System) template closely mimicking our build process and Visual Studio settings. This project works as expected, Nsight will gladly break the c-native code and not strip the external lib.so.
I conducted the following test. Build both project solutions, then in the original projects additional symbols directory, three lib.so files were added:
Both the untouched and renamed copy of the original lib.so get stripped but the HelloWorld built lib.so does not get edited in any way. Can someone please provide any additional information as to why this may happen?