2017-07-24 4 views
0

Zeit mit Asan (See report)Kann asan mit einer Umgebungsvariablen deaktiviert werden?

==5097==Shadow memory range interleaves with an existing memory mapping. ASan cannot proceed correctly. ABORTING. 
==5097==ASan shadow was supposed to be located in the [0x00007fff7000-0x10007fff7fff] range. 

Ist es möglich, eine Umgebungsvariable zu verwenden Asan zu stoppen wird verwendet, um in einem bekannten Problem läuft, diesen Fehler zu verhindern, dass ich?

Oder zumindest diesen Fehler nicht tödlich zu stoppen.


Der Grund, warum ich dies tun will, ist der fehlerhafte Befehl geschieht, wenn Code zu erzeugen, aber ich mag Asan für die resultierenden binären verwenden. Es ist möglich, verschiedene CFLAGs für generierte Binaries und die finale Binärdatei zu haben, aber es wäre schwer zu tun, ohne sie für alle anderen zu kodieren. Also würde ich gerne eine Möglichkeit haben, Asan während des Build-Schritts zu deaktivieren, aber danach verwenden.


Edit: falls es sinnvoll ist, geschieht dies mit einem extrem einfachen Programm: Error, Code.

+0

Haben Sie versucht zu prüfen, welche Bibliothek diese von Asan benötigte Speicherregion belegt hat? – yugr

+0

Was ist seltsam über den Fehler ist, dass die ausführbare Datei auf 0x00ab8a216000 anstelle von [üblichen 0x400000] (https://stackoverflow.com/questions/14314021/why-linux-gnu-linker-chose-address-0x400000) zugeordnet ist. Gibt es etwas Besonderes an der Art, wie Sie Datatoc verknüpfen? Vielleicht spezielle 'LDFLAGS'? – yugr

+0

Nichts seltsam in Bezug auf LDFLAGS, neben der Verwendung von ASAN. – ideasman42

Antwort

1

Nein, dies ist ein grundlegender Fehler, der verhindert, dass alle späteren Instrumente von Asan korrekt funktionieren. Z.B. Eine Stapelvergiftung in Funktionsprologs würde zu Segfaults führen oder den Zufallsspeicher korrumpieren.

0

Der von Ihnen gemeldete Fehler ist kein Addressability-Fehler, der von einem Adressdesinfizierer gefunden wurde, sondern ein Problem mit dem Adressdesinfizierer selbst. Lesen Sie die FAQ here. Berichterstattung hier den Teils, der zu Ihrem Fall relevant ist:

. F: Ich verwende dynamische Asan Laufzeit und mein Programm stürzt beim Start mit „Schattenspeicherbereich verschachtelt mit einer vorhandenen Speicherzuordnung Asan richtig kann nicht fortgesetzt werden . "

A1: Wenn Sie ein gemeinsam genutztes ASan-DSO verwenden, versuchen Sie LD_PRELOAD als Laufzeit in Ihrem Programm.

Verwandte Themen