Discussion:
bestimmte Befehlsaufrufe tracen
(zu alt für eine Antwort)
Marco Moock
2024-08-29 12:36:18 UTC
Permalink
Hallo zusammen!

Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde ich
gerne tracen. Wie kann man das sinnvoll tun?

TLDR: Wie kann ich beim Trace mit gdb oder strace mir nur Aufrufe
ausgeben lassen, die mit xdg-mime zu tun haben?
--
Gruß
Marco
Tim Ritberg
2024-08-29 13:18:34 UTC
Permalink
Post by Marco Moock
Hallo zusammen!
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde ich
gerne tracen. Wie kann man das sinnvoll tun?
TLDR: Wie kann ich beim Trace mit gdb oder strace mir nur Aufrufe
ausgeben lassen, die mit xdg-mime zu tun haben?
Sieht du das nicht im Prozessbaum? Kann man auch in /proc nachsehen.

Ansonsten vielleicht:
https://stackoverflow.com/questions/4053142/how-to-track-child-process-using-strace

Tim
Marco Moock
2024-08-29 14:12:56 UTC
Permalink
Post by Tim Ritberg
Post by Marco Moock
Hallo zusammen!
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde
ich gerne tracen. Wie kann man das sinnvoll tun?
TLDR: Wie kann ich beim Trace mit gdb oder strace mir nur Aufrufe
ausgeben lassen, die mit xdg-mime zu tun haben?
Sieht du das nicht im Prozessbaum? Kann man auch in /proc nachsehen.
Ich wüsste nicht, wie, wenn das Programm beendet wurde.
Post by Tim Ritberg
https://stackoverflow.com/questions/4053142/how-to-track-child-process-using-strace
Ich will hier eigentlich nur die Aufrufe des Unterprogramms samt
Argumenten loggen, nicht die System-Aufrufe des Unterprogramms
selbst.
Tim Ritberg
2024-08-29 14:43:08 UTC
Permalink
Post by Marco Moock
Post by Tim Ritberg
Sieht du das nicht im Prozessbaum? Kann man auch in /proc nachsehen.
Ich wüsste nicht, wie, wenn das Programm beendet wurde.
Läuft das Programm zu schnell durch?
Post by Marco Moock
Post by Tim Ritberg
https://stackoverflow.com/questions/4053142/how-to-track-child-process-using-strace
Ich will hier eigentlich nur die Aufrufe des Unterprogramms samt
Argumenten loggen, nicht die System-Aufrufe des Unterprogramms
selbst.
Ja dann filter doch :-)

strace -f -e trace=execve mutterprogramm

Tim
Marco Moock
2024-08-30 19:16:18 UTC
Permalink
Post by Tim Ritberg
strace -f -e trace=execve mutterprogramm
Das hat funktioniert.

Ergebnis: Der sucht xdg-open in allen Orten von $PATH und wenn der es
an einer Stelle nicht findet, gibt es die Meldung, auch wenn es dann an
anderer Stelle gefunden wird. Die Reihenfolge von $PATH muss ich halt
anpassen...
--
Gruß
Marco

Spam und Werbung bitte an
***@nirvana.admins.ws
Sieghard Schicktanz
2024-08-31 17:50:56 UTC
Permalink
Hallo Marco,
Post by Marco Moock
Ergebnis: Der sucht xdg-open in allen Orten von $PATH und wenn der es
an einer Stelle nicht findet, gibt es die Meldung, auch wenn es dann an
anderer Stelle gefunden wird. Die Reihenfolge von $PATH muss ich halt
anpassen...
Eigentlich sollte der Urheber sein Programm anpassen. Der benutzt
anscheinend nicht die im System vorgesehenen Funktionen (exec.p?), sondern
macht seine eigene Sucherei und hat die noch unsinnig zusammengestoppel.
Die "exec"-Funktionen mit "p" suchen nämlich selber im Pfad, und sie geben
keine Falschmeldung, wenn das aufgerufene Programm in einem Verzeichnis
daraus gefunden wurde. Und falls da eine Script-Sprache verwendet wurde: es
gibt für diese Systemfunktionen eigentlich immer eine Bindung.
Du solltest eine Fehlermeldung machen.
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
Marco Moock
2024-09-16 10:57:21 UTC
Permalink
Post by Marco Moock
Ergebnis: Der sucht xdg-open in allen Orten von $PATH und wenn der es
an einer Stelle nicht findet, gibt es die Meldung, auch wenn es dann
an anderer Stelle gefunden wird. Die Reihenfolge von $PATH muss ich
halt anpassen...
Das ist übrigens nicht die Ursache.

Die Meldung kommt aus dem Skript selbst und tritt auch auf, wenn man
xdg-settings nutzt.

m[~]$ xdg-settings get default-web-browser
/usr/bin/xdg-mime: Zeile 323: [: Zu viele Argumente.
/usr/bin/xdg-mime: Zeile 325: [: Zu viele Argumente.
userapp-Pale Moon-7LN4S2.desktop
m[~]$
Peter J. Holzer
2024-09-16 11:20:39 UTC
Permalink
Post by Marco Moock
Die Meldung kommt aus dem Skript selbst und tritt auch auf, wenn man
xdg-settings nutzt.
m[~]$ xdg-settings get default-web-browser
/usr/bin/xdg-mime: Zeile 323: [: Zu viele Argumente.
/usr/bin/xdg-mime: Zeile 325: [: Zu viele Argumente.
Das sieht nach vergessenen Anführungszeichen aus. Was steht denn in
diesen Zeilen?

hp

Sieghard Schicktanz
2024-08-29 17:44:31 UTC
Permalink
Hallo Marco,
Post by Marco Moock
Post by Marco Moock
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde
ich gerne tracen. Wie kann man das sinnvoll tun?
[strace]
Post by Marco Moock
Ich will hier eigentlich nur die Aufrufe des Unterprogramms samt
Argumenten loggen, nicht die System-Aufrufe des Unterprogramms
selbst.
Ist das"sdg-mime" ein eigenständiges Programm, das mittels der "ecex<>"-
Funktion aufgerufen wird? Dann _könntest_ Du das doch in ein Primitv-
Scriptlet ähnlich 'echo "$@" >> sonstwohin; $0 "$@"' packen und in der
Ausgabe in "sonstwohin" dann die Parameter begutachten. (Natürlich muß
das aufrufende Programm Schreibrechte für "sonstwohin" haben, und das
Scriptlet muß so ergänzt sein, daß es die "exec<>"-Fnktion auch richtig
aufrufen kann. Aber das kriegst Du sicher hin.)
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
Hermann Riemann
2024-08-29 13:56:19 UTC
Permalink
Post by Marco Moock
Hallo zusammen!
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde ich
gerne tracen. Wie kann man das sinnvoll tun?
TLDR: Wie kann ich beim Trace mit gdb oder strace mir nur Aufrufe
ausgeben lassen, die mit xdg-mime zu tun haben?
Früher habe ich beruflich Maschinencode trace in Datei ausgegeben,
und die Datei mit einem Programm nachbearbeitet,
und das Ergebnis dann mit Editor durchsucht.
--
<http://www.hermann-riemann.de>
Marc Haber
2024-08-29 14:49:37 UTC
Permalink
Post by Marco Moock
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde ich
gerne tracen. Wie kann man das sinnvoll tun?
Im ersten Versuch mal ein xdg-mime binary weiter vorne in den Suchpfad
stellen das seine Parameter loggt und sie dann 1:1 weiter ans
"richtige" xdg-mime weiterreicht.

Grüße
Marc
--
----------------------------------------------------------------------------
Marc Haber | " Questions are the | Mailadresse im Header
Rhein-Neckar, DE | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 6224 1600402
Marco Moock
2024-08-29 15:05:06 UTC
Permalink
Post by Marc Haber
Post by Marco Moock
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde
ich gerne tracen. Wie kann man das sinnvoll tun?
Im ersten Versuch mal ein xdg-mime binary weiter vorne in den Suchpfad
stellen das seine Parameter loggt und sie dann 1:1 weiter ans
"richtige" xdg-mime weiterreicht.
Kann ich nicht beeinflussen, das "Mutterprogramm" ist Claws Mail und da
will ich jetzt ned auch noch was am Quelltext ändern und dann
kompilieren.

Hintergrund: Es soll analysiert werden, ob Claws selbst oder was
anderes daran Schuld ist und da ein Bugreport geöffnet werden.
--
Gruß
Marco

Spam und Werbung bitte an
***@nirvana.admins.ws
Peter J. Holzer
2024-08-29 15:18:56 UTC
Permalink
Post by Marco Moock
Post by Marc Haber
Post by Marco Moock
Ein Programm ruft xdg-mime auf mit zu vielen Argumenten. Das würde
ich gerne tracen. Wie kann man das sinnvoll tun?
Im ersten Versuch mal ein xdg-mime binary weiter vorne in den Suchpfad
stellen das seine Parameter loggt und sie dann 1:1 weiter ans
"richtige" xdg-mime weiterreicht.
Kann ich nicht beeinflussen, das "Mutterprogramm" ist Claws Mail und da
will ich jetzt ned auch noch was am Quelltext ändern und dann
kompilieren.
Musst Du ja auch nicht, wenn Du xdg-mime ersetzt. Du musst nur den PATH
ändern.

Falls Claws nicht "xdg-mime", sondern "/usr/bin/xdg-mime" aufruft,
kannst Du einfach in "/usr/bin/xdg-mime.orig" umbenennen und dann ein
Shell-Script "/usr/bin/xdg-mime" schreiben, das seine Parameter loggt
und dann "/usr/bin/xdg-mime.orig" aufruft.

hp
Loading...