【【Linux】关于路由跟踪指令traceroute】教程文章相关的互联网学习教程文章

linux – 为什么blktrace只写8块?【代码】

我想了解数据库写入磁盘的I / O模式,以决定使用多少磁盘以获得最佳性能.要分析我想要使用blktrace的I / O模式,我必须首先解决它.这是我在这里尝试的. 我有一个USB棒,我连接到我的电脑,它变成/ dev / sdd.现在我开始吧dd if=/dev/sdd of=/dev/null在一个单独的窗口我开始blktrace -d /dev/sdd -o - | blkparse -i -并期望看到已合并(M)并放入队列(Q)的读(R)操作.这是有效的,但根据我的理解,块大小始终为8:8,48 6 15257 2....

linux – traceroute只给星星如何修复【代码】

请告知以下问题.当我做:$traceroute 8.8.8.8即使ping到google.com(8.8.8.8)似乎正在工作,我输入的输出只显示星星. >请告知我需要修复我的文件/ conf以解决此问题?>我需要检查什么? Ping命令输出$ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=73.4 ms64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=69.6 mstraceroute命令输出$traceroute 8.8.8.8traceroute to 8.8...

如何使用ftrace跟踪系统调用事件而不显示Linux内核中的任何其他函数?【代码】

例如,要监控所有mkdir调用,我能想到的最好的是:#!/bin/sh set -euxd=debug/tracingmkdir -p debug if ! mountpoint -q debug; thenmount -t debugfs nodev debug fi# Stop tracing. echo 0 > "${d}/tracing_on"# Clear previous traces. echo > "${d}/trace"# Enable tracing mkdir echo sys_enter_mkdir > "${d}/set_event"# Set tracer type. echo function > "${d}/current_tracer"# Filter only sys_mkdir as a workaround. e...

如何从Linux中的ftrace中的特定函数开始获取完整的调用图?【代码】

我想用ftrace跟踪特定的函数,但是需要来自该函数的所有进一步调用. 我已经设法在我想要的功能上使用过滤器启动ftrace,但现在它只显示了这个特定的函数. 所以我的问题是:如何打印从特定函数调用的所有函数,这些函数调用的函数,等等?解决方法:您还可以设置max_graph_depth并获得更多功能图的深度. 以下步骤将有助于生成所选linux函数的函数图.1. cd /sys/kernel/debug/tracing 2. cat /dev/null > trace 3. echo generic_make_req...

linux – ptrace suid进程(在它下降普遍存在之后)【代码】

我知道我们不能对suid二进制文件进行ptrace.但是,我想知道为什么在二进制文件将其优先级降低到uid而不是euid之后我们不能执行ptrace. 例如,在二进制文件中,suid二进制文件在执行某些步骤后会丢弃特权.seteuid (euid); /* euid was obtained by geteuid() */ret_chdir = chdir (path);seteuid (ruid); /* ruid was obtained by getuid() */system("whoami");printf("Enter any char");scanf("%c", &junk);在我打印“whoami”的情况下...

linux – strace:order of和<... resumed>【代码】

我正在编写一个脚本来分析用strace跟踪的文件访问. 跟踪包含一些已被另一个进程中断的调用. strace用< unfinished ...>显示它们和< ...关闭恢复> (如果是中断的近距离通话)标记.[pid 26817] 12:48:22.972737 close(449 <unfinished ...> [pid 28708] 12:48:22.972797 fcntl(451, F_SETFD, FD_CLOEXEC <unfinished ...> [pid 26817] 12:48:22.972808 <... close resumed> ) = 0 该进程及其所有线程都已被跟踪strace -f -tt -p <pid>...

linux – PTRACE_O_TRACEEXEC与它的缺席有什么区别?

根据ptrace手册页,If the PTRACE_O_TRACEEXEC option is not in effect, all successful calls to execve(2) by the traced process will cause it to be sent a SIGTRAP signal, giving the parent a chance to gain control before the new program begins execution. 如果该选项生效,Stop the tracee at the next execve(2). A waitpid(2) by the tracer will return a status value such that status>>8 == (SIGTRAP | (PTRACE...

linux – 可以ptrace判断x86系统调用是否使用了64位或32位ABI?

我正在尝试使用ptrace跟踪由单独进程生成的所有系统调用,无论是32位(IA-32)还是64位(x86-64).我的跟踪器将在启用了IA-32仿真的64位x86安装上运行,但理想情况下可以跟踪64位和32位应用程序,包括64位应用程序是否分叉并执行32位进程. 问题在于,由于32位和64位系统调用号不同,我需要知道进程是32位还是64位来确定它使用哪个系统调用,即使我有系统调用号.似乎有imperfect methods,比如检查/ proc /< pid> / exec或(作为strace)寄存器st...

c – Linux:通过ptrace()执行系统调用【代码】

嘿:)我目前正在为x86 / x64 Linux开发一个memoryhacking-library.我努力的目的是实现某种远程系统调用执行. 这是我的代码,当我尝试执行有效的系统调用时,它只会崩溃其他进程. (我在代码中使用的所有函数都是ptrace的包装器)你可以在这里找到完整的代码:http://code.google.com/p/ethonmem/source/browse/long Debugger::executeSyscall(unsigned long code, std::vector<unsigned long> const& args) const {// Backup registers....

Linux应用调试-strace命令【图】

come from : https://www.cnblogs.com/lifexy/p/8034041.html 1.strace简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。通过strace可以知道应用程序打开了哪些文件,以及读写了什么内容,包括消耗的时间以及返回值等 2.安装strace命令 首先需要以下两个文件: strace-4.5.15.tar.bz2 strace-fix-arm-bad-syscall.patch 步骤如下: #tar -xjf strace-4.5.15.tar.bz2 #cd strace-4.5.15/ #patch -p1 ...

如何使用ptrace(linux,x86 / x86_64)获得“回溯”(如gdb)【代码】

我想像gdb那样获得类似backtrace的输出.但是我想直接通过ptrace()来做这件事.我的平台是Linux,x86;以及后来的x86_64. 现在我只想从堆栈中读取返回地址,而不转换为符号名称. 因此,对于测试程序,通过gcc-4.5在-O0模式下编译:int g() {kill(getpid(),SIGALRM);}int f() {int a;int b;a = g();b = a;return a+b;}int e() {int c;c = f();}main() {return e();}我将开始我的程序并在一开始就与ptrace连接以测试程序.然后,我将做PTRACE_...

替代Linux上的backtrace(),可以找到静态函数的符号

在手册页中,Linux上的backtrace()函数说:Note that names of “static” functionsare not exposed, and won’t be available in the backtrace.但是,启用调试符号(-g)后,addr2line和gdb等程序仍然可以获取静态函数的名称.有没有办法从进程内部以编程方式获取静态函数的名称?解决方法:如果您的可执行文件(和链接库)使用调试信息进行编译(即使用-g标记为gcc或g),那么您可以使用来自GCC内部的Ian Taylor的libbacktrace(已宣布he...

[Linux]使用 ftrace 调试 Linux 内核 3【代码】

原文链接:使用 ftrace 调试 Linux 内核,第 3 部分 内核头文件 include/linux/kernel.h 中描述了 ftrace 提供的工具函数的原型,这些函数包括 trace_printk、tracing_on/tracing_off 等。本文通过示例模块程序向读者展示如何在代码中使用这些工具函数。 使用 trace_printk 打印跟踪信息 ftrace 提供了一个用于向 ftrace 跟踪缓冲区输出跟踪信息的工具函数,叫做 trace_printk(),它的使用方式与 printk() 类似。可以通过 trace 文...

使用strace命令解决linux服务器依赖库问题【代码】

使用strace命令解决linux服务器依赖库问题 简单说明:strace的另一个用处是解决和动态库相关的问题。当对一个可执行文件运行ldd时,它会告诉你程序使用的动态库和找到动态库的位置。但是如果你正在使用一个比较老 的glibc版本(2.2或更早),你可能会有一个有bug的ldd程序,它可能会报告在一个目录下发现一个动态库,但是真正运行程序时动态连接程序 (/lib/ld-linux.so.2)却可能到另外一个目录去找动态连接库。这通常因为/etc/ld...

Linux基础命令---traceroute追踪路由

traceroutetraceroute指令输出到目标主机的路由包。Traceroute跟踪从IP网络到给定主机的路由数据包。它利用IP协议的生存时间(TTL)字段,并试图在通往主机的路径上从每个网关激发ICMP TIME_SUBERS响应。traceroute6等价于“traceroute -6”唯一需要的参数是目标主机的名称或IP地址。探测数据包的总大小(IPv 4默认为60字节,IPv 6为80字节)是一个可选参数。在某些情况下,可以忽略指定的大小或将其增加到最小值。该程序试图跟踪IP数据...