Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ffc0193 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

LockAgent: Add crasher binary

Add a helper that crashes with a given message.

Test: manual
Change-Id: I77e249484e65e7532045d0f8cc53ceb18d94bff5
parent afb660cb
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -51,11 +51,22 @@ java_library {
    installable: true,
}

cc_binary {
    name: "lockagent_crasher",
    srcs: ["crasher.cpp"],
    static_libs: ["libbase_ndk"],
    shared_libs: ["liblog"],
    sdk_version: "current",
    stl: "c++_static",
    compile_multilib: "first",
}

sh_binary {
    name: "start_with_lockagent",
    src: "start_with_lockagent.sh",
    required: [
        "liblockagent",
        "lockagent",
        "lockagent_crasher",
    ],
}
+30 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * 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.
 */

#include <android-base/logging.h>

// Simple binary that will just crash with the message given as the first parameter.
//
// This is helpful in cases the caller does not want to crash itself, e.g., fork+crash
// instead, as LOG(FATAL) might not be safe (for example in a multi-threaded environment).
int main(int argc, char *argv[]) {
    if (argc != 2) {
        LOG(FATAL) << "Need one argument for abort message";
        __builtin_unreachable();
    }
    LOG(FATAL) << argv[1];
    __builtin_unreachable();
}