Merge remote-tracking branch 'origin/GP-3507_Dan_gdbTestsWithYama' into patch

This commit is contained in:
Ryan Kurtz 2023-05-30 14:09:57 -04:00
commit aa2ac78dc3
3 changed files with 31 additions and 1 deletions

View File

@ -31,7 +31,7 @@ public enum GdbLinuxSpecimen implements DebuggerTestSpecimen, DebuggerModelTestU
SLEEP {
@Override
String getCommandLine() {
return "sleep 100000";
return DummyProc.which("expTraceableSleep");
}
},
FORK_EXIT {

View File

@ -57,6 +57,7 @@ task testSpecimenLinux_x86_64 {
//dependsOn 'expTypesExecutable'//Linux_x86_64Executable'
dependsOn 'expRegistersLinux_x86_64Executable'
dependsOn 'expStackLinux_x86_64Executable'
dependsOn 'expTraceableSleepExecutable'//Linux_x86_64Executable'
doLast {
exec {
@ -133,6 +134,9 @@ model {
targetPlatform "win_x86_64"
targetPlatform "win_x86_32" // TODO: Test on these
}
expTraceableSleep(NativeExecutableSpec) {
targetPlatform "linux_x86_64"
}
}
binaries {

View File

@ -0,0 +1,26 @@
/* ###
* IP: GHIDRA
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Our own version of sleep that tells Yama it's okay to be traced
*/
#include <unistd.h>
#include <sys/prctl.h>
int main(int argc, char **argv) {
prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY);
sleep(100);
}