Как генерировать gcc отладочный символ вне цели сборки?

Что вы видите в своих журналах cloudwatch в группе журналов AdDecisionServerInteractions? Есть ли ошибки в событиях или они вообще не запускаются?

Можете ли вы также подать заявку в службу поддержки и прикрепить весь VAST XML (чтобы мы могли проверить его синтаксис) или опубликовать его здесь?

Главное, на что следует обратить внимание при проведении статического тестирования, - убедиться, что синтаксис соответствует спецификации VAST. Полезно посмотреть пример VAST с реального рекламного сервера, такого как DFP:

https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external / single_ad_samples & амп; ciu_szs = 300x250 & амп; осущ = з & Amp; gdfp_req = 1 & амп; ENV = VP & амп; выход = обширное & амп; unviewed_position_start = 1 & амп; cust_params = развертывание% 3Ddevsite% 26sample_ct% 3Dlinear & амп; коррелятор =

167
задан SamB 14 April 2010 в 00:34
поделиться

3 ответа

Вам необходимо использовать objcopy , чтобы отделить отладочную информацию :

objcopy --only-keep-debug "${tostripfile}" "${debugdir}/${debugfile}"
strip --strip-debug --strip-unneeded "${tostripfile}"
objcopy --add-gnu-debuglink="${debugdir}/${debugfile}" "${tostripfile}"

Я использую приведенный ниже сценарий bash, чтобы разделить отладочную информацию на файлы с расширение .debug в каталоге .debug. Таким образом, я могу архивировать библиотеки и исполняемые файлы в одном tar-файле, а каталоги .debug - в другом. Если я хочу добавить отладочную информацию позже, я просто извлекаю отладочный tar-файл и вуаля, у меня есть символическая отладочная информация.

Это сценарий bash:

#!/bin/bash

scriptdir=`dirname ${0}`
scriptdir=`(cd ${scriptdir}; pwd)`
scriptname=`basename ${0}`

set -e

function errorexit()
{
  errorcode=${1}
  shift
  echo $@
  exit ${errorcode}
}

function usage()
{
  echo "USAGE ${scriptname} <tostrip>"
}

tostripdir=`dirname "$1"`
tostripfile=`basename "$1"`


if [ -z ${tostripfile} ] ; then
  usage
  errorexit 0 "tostrip must be specified"
fi

cd "${tostripdir}"

debugdir=.debug
debugfile="${tostripfile}.debug"

if [ ! -d "${debugdir}" ] ; then
  echo "creating dir ${tostripdir}/${debugdir}"
  mkdir -p "${debugdir}"
fi
echo "stripping ${tostripfile}, putting debug info into ${debugfile}"
objcopy --only-keep-debug "${tostripfile}" "${debugdir}/${debugfile}"
strip --strip-debug --strip-unneeded "${tostripfile}"
objcopy --add-gnu-debuglink="${debugdir}/${debugfile}" "${tostripfile}"
chmod -x "${debugdir}/${debugfile}"
175
ответ дан 23 November 2019 в 21:00
поделиться

Никакой ответ до сих пор не упоминает eu-strip --strip-debug -f <out.debug> <input>.

  • Это обеспечивается elfutils пакет.
  • результат будет состоять в том, что <input> файл был лишен отладочных символов, которые являются теперь всеми в <out.debug>.
0
ответ дан 23 November 2019 в 21:00
поделиться

Проверьте Параметр "--only-keep-debug" команды strip .

Из ссылки:

Предполагается, что этот параметр будет использоваться вместе с --add-gnu-debuglink чтобы создать исполняемый файл из двух частей. Один из них - это двоичный файл, который будет занимать меньше места в ОЗУ и в дистрибутиве, а второй - файл с отладочной информацией, который необходим только в том случае, если требуются возможности отладки.

9
ответ дан 23 November 2019 в 21:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: