valgrind

valgrind ist ein dynamisches Analysetool für Linux-, OS X-, Android- und Solaris-Systeme. Es kann zum Profilieren sowie zum Auffinden von Speicherlecks, Race-Conditions und Threading-Fehlern verwendet werden.
2
Antworten

Valgrind macOs und Fehler Syscall param msg-desc.port.name zeigt auf nicht initialisierte Byte (s)

Ich habe versucht, Valgrind 3.13 und 3.14 (auf MacOs 10.12.6) in einem sehr einfachen Projekt zu starten, aber ich habe einen seltsamen Fehler, den ich nie zuvor in meinem Linux bekommen habe. Sehr einfaches C-Programm main.c : %Vor%...
23.07.2017, 21:33
1
Antwort

Valgrind auf Basis Qt-Anwendung: Berichte Masive Leaks

Ich wollte also sehen, was mit einer einfachen Qt4-Anwendung passieren würde, die aus einem einfachen Makefile kompiliert wurde, wenn sie durch Valgrind läuft. Was würde diese Lecks verursachen? Ich lösche alle dynamisch zugewiesenen Objekte an...
13.08.2011, 06:38
0
Antworten

Was ist der Unterschied zwischen _int_malloc und malloc (in Valgrind)?

Ich bin erstaunt, dass ich kein Dokument finden kann, das den Unterschied zwischen _int_malloc und malloc in der Ausgabe von Valgrinds Tool callgrind angibt. Könnte jemand erklären, was ist der Unterschied? Außerdem schreibe ich t...
03.05.2016, 14:55
3
Antworten

C frei (): ungültiger Zeiger

Ich lehre mich selbst C. Mein Ziel ist es, eine C-Funktion zu erstellen, die einfach eine Abfragekette durchläuft und auf das Und-Zeichen und das Gleichheitszeichen aufteilt. Ich bleibe bei diesem Fehler von Valgrind hängen. %Vor% und das Ba...
30.11.2013, 06:55
4
Antworten

Mehrere Threads schreiben nach std :: cout oder std :: cerr

Ich habe OpenMP-Threads, die über cout und cerr auf die Konsole schreiben. Dies ist natürlich nicht sicher, da die Ausgabe verschachtelt werden kann. Ich könnte etwas wie machen %Vor% Es wäre schöner, wenn wir cerr durch eine thread-sichere...
22.02.2013, 21:54
2
Antworten

___ answer19365033 ___

Sehen Sie sich die %code% struct:

an %Vor%

Aufgrund der Ausrichtung der Datenstruktur kann die Adresse von %code% gezwungen sein, sich an die Adresse eines Vielfachen der Wortgröße anzupassen. Daher werden mehrere nicht verwendete Bytes zwischen %code% und %code% aufgefüllt. Das sind die Bytes, die nicht initialisiert und somit von Valgrind gemeldet wurden.

Um das Problem zu umgehen, könnten Sie das Initialisieren der gesamten Struktur durch %code% erzwingen.

%Vor%     
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ answer19365569 ___

Obwohl @timrau ziemlich genau beschrieben hat, was das Kernproblem hier ist (Ausrichtung / Packen), bin ich kein Fan der vorgeschlagenen Lösung.

Sie haben eine %code% in Ihrem Code als %code% und %code% beschrieben. Die Größe der tatsächlichen Datenstruktur im Speicher ist jedoch nicht %code% , und das ist das Kernproblem.

Die vorgeschlagene Lösung schlägt vor, einfach alle Bits der %code% -Struktur zu löschen, bevor die wichtigen Bits eingefügt werden. Das Problem, das ich damit habe, ist sowohl ein semantischer als auch ein technischer - die Größe der Datenstruktur, die über den Draht gesendet wird, ist keine genaue Darstellung dessen, was Sie im Code modelliert haben. Mit anderen Worten, Sie senden nicht nur eine %code% und eine %code% - Sie senden eine %code% , eine %code% und einige andere cruft (padding).

Mein Vorschlag ist es, den Crust loszuwerden und nur das zu senden, was Sie in Ihrem Code modelliert haben.

Es gibt keine direkte Unterstützung in C ++, um Ausrichtung und Auffüllung auszuschalten, aber alle mir bekannten Compiler bieten einen einfachen Mechanismus, um Datenstrukturen auf %code% bytes auszurichten:

%Vor%

Dadurch wird die %code% -Datenstruktur genau , was Sie in Ihrem Code modelliert haben, ohne Auffüllung. Dadurch wird %code% unnötiger Zugriff und Sie senden genau %code% byte über die Verbindung.

    
___ tag123sockets ___ Ein Endpunkt eines bidirektionalen Interprozess-Kommunikationsflusses. Dies bezieht sich oft auf einen Prozessablauf über eine Netzwerkverbindung, ist jedoch keineswegs darauf beschränkt. Nicht zu verwechseln mit Websocket (einem Protokoll) oder anderen Abstraktionen (z. B. socket.io). ___ tag123valgrind ___ valgrind ist ein dynamisches Analysetool für Linux-, OS X-, Android- und Solaris-Systeme. Es kann zum Profilieren sowie zum Auffinden von Speicherlecks, Race-Conditions und Threading-Fehlern verwendet werden. ___ tag123memoryalignment ___ Speicherausrichtung bedeutet, dass sich Objekte und Variablen an bestimmten Offsets im Systemspeicher befinden. ___ qstntxt ___

Ich habe Valgrind verwendet, um nach Speicherlecks in meinem Code zu suchen. Obwohl keine Speicherlecks gefunden werden, werden einige Fehler gemeldet, die alle auf einer einzigen Funktion / Klassenmethode beruhen:

%Vor%

Das %code% , auf das die Fehler zeigen, ist Teil von %code% class:

%Vor%

Ich sehe nicht, was das Problem ist. Wo genau sind die nicht initialisierten Werte? Oder sollte ich einfach die von Valgrind gemeldeten Fehler ignorieren?

    
___

Ich habe Valgrind verwendet, um nach Speicherlecks in meinem Code zu suchen. Obwohl keine Speicherlecks gefunden werden, werden einige Fehler gemeldet, die alle auf einer einzigen Funktion / Klassenmethode beruhen: %Vor% Das sendMsg(const...
14.10.2013, 16:37
5
Antworten

Android Valgrind Build schlägt fehl

Hallo, ich versuche Valgrind für Android-Arm zu bauen. Auf Linux Mint 13 schlägt es fehl mit: %Vor% Ich benutze ndk-r8e und valgrind 3.8.1. Die Konfiguration endet mit: %Vor% Was kann ich tun, um das Problem zu beheben? Alternativ, gibt...
08.05.2013, 21:38
2
Antworten

Valgrind Kreuzkompilierung für ARMv5tel

Ich habe configure mit der folgenden Option ausgeführt: %Vor% führte dann make Ich habe den folgenden Fehler festgestellt: %Vor% Vermisse ich etwas? swathi     
19.11.2010, 18:51
2
Antworten

Valgrind "Bedingter Sprung oder Bewegung hängt von nicht initialisierten Werten ab" Fehler

Ich bekomme viele Fehler mit valgrind, die sagen: "Bedingter Sprung oder Bewegung hängt von nicht initialisierten Werten ab". Unten ist der eine der Blöcke. Alle sind ähnlich: %Vor% Der Fehler selbst befindet sich in der Zeile while ()....
06.11.2010, 16:12
8
Antworten

Ergänzung zu valgrind?

Ich habe in den letzten Wochen daran gearbeitet, einen wirklich schwierigen Bug zu finden, der meine Anwendung zum Absturz bringt. Zuerst stürzte die Anwendung bei der Zuweisung einer std :: string ab, dann während der Freigabe einer lokalen Var...
18.02.2010, 14:44