You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
938 B
28 lines
938 B
# Copyright 2015 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import logging
|
|
|
|
from autotest_lib.client.bin import utils
|
|
|
|
|
|
_ASAN_SYMBOL = "__asan_init"
|
|
|
|
|
|
def running_on_asan(binary="debugd"):
|
|
"""Returns whether we're running on ASan.
|
|
|
|
@param binary: file to test for ASan symbols.
|
|
"""
|
|
# -q, --quiet * Only output 'bad' things
|
|
# -F, --format <arg> * Use specified format for output
|
|
# -g, --gmatch * Use regex rather than string compare (with -s)
|
|
# -s, --symbol <arg> * Find a specified symbol
|
|
scanelf_command = "scanelf -qF'%s#F'"
|
|
scanelf_command += " -gs %s `which %s`" % (_ASAN_SYMBOL, binary)
|
|
symbol = utils.system_output(scanelf_command)
|
|
logging.debug("running_on_asan(): symbol: '%s', _ASAN_SYMBOL: '%s'",
|
|
symbol, _ASAN_SYMBOL)
|
|
return symbol != ""
|