当前位置: 首页 > news >正文

【Linux】内核调用栈打印函数dump_stack使用效果

 init/main.c的start_kernel示例,这个调用栈不太深:

 /var/log/dmesg日志:

[    0.000000] kernel: [init/main.c start_kernel 911] start_kernel(void)
[    0.000000] kernel: [kernel/panic.c print_tainted 519 LOG_TIMES: 1 ]  
[    0.000000] kernel: CPU: 0 PID: 0 Comm: swapper Not tainted 6.9.0+ #3
[    0.000000] kernel: Call Trace:
[    0.000000] kernel:  <TASK>
[    0.000000] kernel:  dump_stack_lvl+0x76/0xa0
[    0.000000] kernel:  dump_stack+0x10/0x20
[    0.000000] kernel:  start_kernel+0x51/0x1780
[    0.000000] kernel:  x86_64_start_reservations+0x18/0x30
[    0.000000] kernel:  x86_64_start_kernel+0xbf/0x110
[    0.000000] kernel:  common_startup_64+0x13e/0x141
[    0.000000] kernel:  </TASK>

这是网卡驱动发送数据的函数,调用栈比较深:


[   20.288274] kernel: [kernel/sched/core.c wake_up_new_task 4974]  pid: 1325 exe name: (udev-worker) 
[   20.294028] kernel: [net/ipv4/udp.c udp_send_skb 913]  
[   20.294037] kernel: [net/ipv4/ip_output.c ip_send_skb 1520]  
[   20.294042] kernel: [net/ipv4/ip_output.c ip_local_out 131] 1
[   20.294046] kernel: [net/ipv4/ip_output.c __ip_local_out 107] 1
[   20.294072] kernel: [include/linux/netdevice.h dev_queue_xmit 3092]  
[   20.294078] kernel: [net/core/dev.c __dev_queue_xmit 4378]  
[   20.294083] kernel: [net/core/dev.c __dev_xmit_skb 3855]  
[   20.294088] kernel: [net/sched/sch_generic.c sch_direct_xmit 322]  
[   20.294094] kernel: [net/core/dev.c dev_hard_start_xmit 3648]  
[   20.294098] kernel: [net/core/dev.c xmit_one 3631]  
[   20.294102] kernel: [include/linux/netdevice.h netdev_start_xmit 4922]  
[   20.294107] kernel: [include/linux/netdevice.h __netdev_start_xmit 4905] ops->ndo_start_xmit(skb, dev);
[   20.294112] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3200]  
[   20.294118] kernel: CPU: 2 PID: 748 Comm: avahi-daemon Not tainted 6.9.0+ #3
[   20.294126] kernel: Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
[   20.294131] kernel: Call Trace:
[   20.294136] kernel:  <TASK>
[   20.294143] kernel:  dump_stack_lvl+0x76/0xa0
[   20.294159] kernel:  dump_stack+0x10/0x20
[   20.294171] kernel:  e1000_xmit_frame+0x53/0x1ba0 [e1000]
[   20.294230] kernel:  ? vprintk_default+0x1d/0x30
[   20.294240] kernel:  ? vprintk+0x41/0x80
[   20.294250] kernel:  ? _printk+0x60/0x90
[   20.294266] kernel:  netdev_start_xmit+0xdd/0x340
[   20.294280] kernel:  dev_hard_start_xmit+0x9a/0x450
[   20.294293] kernel:  sch_direct_xmit+0xea/0x450
[   20.294307] kernel:  __dev_queue_xmit+0xb40/0x1090
[   20.294320] kernel:  ? _printk+0x60/0x90
[   20.294335] kernel:  ip_finish_output2+0x35d/0x810
[   20.294347] kernel:  __ip_finish_output+0xd9/0x280
[   20.294356] kernel:  ? dev_loopback_xmit+0xb7/0x250
[   20.294366] kernel:  ip_finish_output+0x60/0x280
[   20.294455] kernel:  ip_mc_output+0xb7/0x420
[   20.294465] kernel:  ? __pfx_ip_finish_output+0x10/0x10
[   20.294475] kernel:  ip_local_out+0x1e2/0x1f0
[   20.294485] kernel:  ip_send_skb+0x77/0x1e0
[   20.294494] kernel:  udp_send_skb+0x1a4/0x4d0
[   20.294507] kernel:  udp_sendmsg+0xc25/0x1060
[   20.294520] kernel:  ? __pfx_ip_generic_getfrag+0x10/0x10
[   20.294542] kernel:  inet_sendmsg+0x180/0x1f0
[   20.294550] kernel:  ? inet_sendmsg+0x180/0x1f0
[   20.294620] kernel:  sock_sendmsg_nosec+0x18e/0x220
[   20.294633] kernel:  ____sys_sendmsg+0x356/0x470
[   20.294649] kernel: [kernel/fork.c __do_sys_set_tid_address 1979]  
[   20.294650] kernel:  ___sys_sendmsg+0x164/0x5c0
[   20.294676] kernel:  __sys_sendmsg+0x89/0xf0
[   20.294686] kernel:  ? __sys_sendmsg+0x89/0xf0
[   20.294704] kernel:  __x64_sys_sendmsg+0x5a/0x180
[   20.294715] kernel:  x64_sys_call+0x25e/0x25c0
[   20.294725] kernel:  do_syscall_64+0x7e/0x180
[   20.294734] kernel:  ? aa_file_perm+0x140/0x570
[   20.294750] kernel:  ? inode_needs_update_time+0x4b/0xd0
[   20.294761] kernel:  ? file_update_time+0x1d/0x90
[   20.294770] kernel:  ? pipe_write+0x472/0x6b0
[   20.294783] kernel:  ? security_file_permission+0x36/0x60
[   20.294797] kernel:  ? vfs_write+0x2d1/0x6d0
[   20.294815] kernel:  ? ksys_write+0xc9/0x100
[   20.294828] kernel:  ? syscall_exit_to_user_mode+0x72/0x360
[   20.294841] kernel:  ? do_syscall_64+0x8b/0x180
[   20.294852] kernel:  ? restore_fpregs_from_fpstate+0x47/0xf0
[   20.294865] kernel:  ? switch_fpu_return+0x50/0xe0
[   20.294946] kernel:  ? syscall_exit_to_user_mode+0x72/0x360
[   20.294959] kernel:  ? do_syscall_64+0x8b/0x180
[   20.294969] kernel:  ? syscall_exit_to_user_mode+0x72/0x360
[   20.294982] kernel:  ? do_syscall_64+0x8b/0x180
[   20.294990] kernel:  ? ksys_write+0xc9/0x100
[   20.295003] kernel:  ? syscall_exit_to_user_mode+0x72/0x360
[   20.295016] kernel:  ? do_syscall_64+0x8b/0x180
[   20.295026] kernel:  ? do_syscall_64+0x8b/0x180
[   20.295036] kernel:  ? clear_bhb_loop+0x15/0x70
[   20.295047] kernel:  ? clear_bhb_loop+0x15/0x70
[   20.295057] kernel:  ? clear_bhb_loop+0x15/0x70
[   20.295070] kernel:  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   20.295080] kernel: RIP: 0033:0x796376b2c004
[   20.295087] kernel: Code: 15 19 6e 0d 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d 45 f0 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55
[   20.295094] kernel: RSP: 002b:00007ffcbf149758 EFLAGS: 00000202 ORIG_RAX: 000000000000002e
[   20.295102] kernel: RAX: ffffffffffffffda RBX: 00006032333d86a0 RCX: 0000796376b2c004
[   20.295107] kernel: RDX: 0000000000000000 RSI: 00007ffcbf149830 RDI: 000000000000000c
[   20.295112] kernel: RBP: 00007ffcbf1497d0 R08: 0000000000000004 R09: 0000000000000019
[   20.295117] kernel: R10: 0000796376ec1259 R11: 0000000000000202 R12: 000000000000000c
[   20.295122] kernel: R13: 00007ffcbf149830 R14: 00006032333c405c R15: 000000000000000c
[   20.295136] kernel:  </TASK>
[   20.295311] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202] [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202]  ens33
[   20.295320] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3217] name: ens33
[   20.295326] kernel: [include/linux/etherdevice.h eth_skb_pad 645]  
[   20.295330] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_tso 2790]  
[   20.295335] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_tx_csum 2866]  
[   20.295340] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_tx_map 2928]  
[   20.295348] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_tx_queue 3073]  
[   20.295662] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_clean 3923] NAPI Rx polling callback
[   20.295669] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_clean_tx_irq2 3963] Reclaim resources after transmit completes
[   20.295678] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_clean_tx_irq2 4062] netdev->stats.tx_packets: 32, netdev->stats.tx_bytes: 3451
[   20.295679] kernel: [kernel/fork.c kernel_clone 2821]  args->name: (null)
[   20.295687] kernel: [kernel/fork.c copy_process 2185]  

[   21.737604] kernel: [include/linux/netdevice.h dev_queue_xmit 3092]  
[   21.737610] kernel: [net/core/dev.c __dev_queue_xmit 4378]  
[   21.737615] kernel: [net/core/dev.c __dev_xmit_skb 3855]  
[   21.737619] kernel: [net/sched/sch_generic.c sch_direct_xmit 322]  
[   21.737623] kernel: [net/core/dev.c dev_hard_start_xmit 3648]  
[   21.737627] kernel: [net/core/dev.c xmit_one 3631]  
[   21.737697] kernel: [include/linux/netdevice.h netdev_start_xmit 4922]  
[   21.737700] kernel: [include/linux/netdevice.h __netdev_start_xmit 4905] ops->ndo_start_xmit(skb, dev);
[   21.737704] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3200]  
[   21.737708] kernel: CPU: 0 PID: 748 Comm: avahi-daemon Not tainted 6.9.0+ #3
[   21.737714] kernel: Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
[   21.737718] kernel: Call Trace:
[   21.737721] kernel:  <TASK>
[   21.737726] kernel:  dump_stack_lvl+0x76/0xa0
[   21.737738] kernel:  dump_stack+0x10/0x20
[   21.737749] kernel:  e1000_xmit_frame+0x53/0x1ba0 [e1000]
[   21.737877] kernel:  ? vprintk_default+0x1d/0x30
[   21.737885] kernel:  ? vprintk+0x41/0x80
[   21.737893] kernel:  ? _printk+0x60/0x90
[   21.737906] kernel:  netdev_start_xmit+0xdd/0x340
[   21.737917] kernel:  dev_hard_start_xmit+0x9a/0x450
[   21.737927] kernel:  sch_direct_xmit+0xea/0x450
[   21.737938] kernel:  __dev_queue_xmit+0xb40/0x1090
[   21.737947] kernel:  ? _printk+0x60/0x90
[   21.737960] kernel:  ip6_finish_output2+0x386/0x9a0
[   21.737971] kernel:  ? __pfx_dev_loopback_xmit+0x10/0x10
[   21.737979] kernel:  ip6_finish_output+0xe0/0x4b0
[   21.737988] kernel:  ? nf_hook_slow+0x7d/0x280
[   21.737998] kernel:  ip6_output+0xb8/0x2b0
[   21.738008] kernel:  ? __pfx_ip6_finish_output+0x10/0x10
[   21.738018] kernel:  ip6_local_out+0x7f/0x1c0
[   21.738026] kernel:  ip6_send_skb+0x5f/0x1e0
[   21.738035] kernel:  udp_v6_send_skb+0x20f/0x580
[   21.738047] kernel:  udpv6_sendmsg+0xd15/0x1070
[   21.738057] kernel:  ? __pfx_ip_generic_getfrag+0x10/0x10
[   21.738079] kernel:  inet6_sendmsg+0x180/0x1f0
[   21.738086] kernel:  ? inet6_sendmsg+0x180/0x1f0
[   21.738094] kernel:  sock_sendmsg_nosec+0x69/0x220
[   21.738103] kernel:  ____sys_sendmsg+0x356/0x470
[   21.738116] kernel:  ___sys_sendmsg+0x164/0x5c0
[   21.738182] kernel:  ? inode_needs_update_time+0x4b/0xd0
[   21.738197] kernel:  __sys_sendmsg+0x89/0xf0
[   21.738203] kernel:  ? __sys_sendmsg+0x89/0xf0
[   21.738216] kernel:  __x64_sys_sendmsg+0x5a/0x180
[   21.738223] kernel:  x64_sys_call+0x25e/0x25c0
[   21.738230] kernel:  do_syscall_64+0x7e/0x180
[   21.738237] kernel:  ? syscall_exit_to_user_mode+0x72/0x360
[   21.738247] kernel:  ? do_syscall_64+0x8b/0x180
[   21.738253] kernel:  ? do_syscall_64+0x8b/0x180
[   21.738261] kernel:  ? ksys_write+0xc9/0x100
[   21.738271] kernel:  ? syscall_exit_to_user_mode+0x72/0x360
[   21.738280] kernel:  ? do_syscall_64+0x8b/0x180
[   21.738286] kernel:  ? do_syscall_64+0x8b/0x180
[   21.738293] kernel:  ? clear_bhb_loop+0x15/0x70
[   21.738301] kernel:  ? clear_bhb_loop+0x15/0x70
[   21.738308] kernel:  ? clear_bhb_loop+0x15/0x70
[   21.738318] kernel:  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   21.738325] kernel: RIP: 0033:0x796376b2c004
[   21.738330] kernel: Code: 15 19 6e 0d 00 f7 d8 64 89 02 b8 ff ff ff ff eb bf 0f 1f 44 00 00 f3 0f 1e fa 80 3d 45 f0 0d 00 00 74 13 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4c c3 0f 1f 00 55 48 89 e5 48 83 ec 20 89 55
[   21.738335] kernel: RSP: 002b:00007ffcbf149758 EFLAGS: 00000202 ORIG_RAX: 000000000000002e
[   21.738340] kernel: RAX: ffffffffffffffda RBX: 00006032333d9da0 RCX: 0000796376b2c004
[   21.738345] kernel: RDX: 0000000000000000 RSI: 00007ffcbf149830 RDI: 000000000000000d
[   21.738348] kernel: RBP: 00007ffcbf1497d0 R08: 0000796376ec1260 R09: 00007ffcbf149792
[   21.738352] kernel: R10: 0000000000000001 R11: 0000000000000202 R12: 000000000000000d
[   21.738356] kernel: R13: 00007ffcbf149830 R14: 00006032333d5d5c R15: 000000000000000d
[   21.738367] kernel:  </TASK>
[   21.738369] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202] [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202]  ens33
[   21.738375] kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3217] name: ens33

 
2024-11-15T22:17:33.588491+08:00 a kernel: [net/ipv4/tcp_output.c tcp_send_ack 4321] source ip: 192.168.16.132: 80, dest ip: 101.6.15.130: 80, family: 2,  state: 1
2024-11-15T22:17:33.588492+08:00 a kernel: [net/ipv4/tcp_output.c __tcp_transmit_skb 1460] source ip: 192.168.16.132: 80, dest ip: 101.6.15.130: 80, family: 2,  state: 1
2024-11-15T22:17:33.588494+08:00 a kernel: [net/ipv4/tcp_output.c tcp_event_ack_sent 192] source ip: 192.168.16.132: 80, dest ip: 101.6.15.130: 80, family: 2,  state: 1
2024-11-15T22:17:33.588495+08:00 a kernel: [net/ipv4/ip_output.c ip_local_out 131] 1
2024-11-15T22:17:33.588497+08:00 a kernel: [net/ipv4/ip_output.c __ip_local_out 107] 1
2024-11-15T22:17:33.588498+08:00 a kernel: [include/linux/netdevice.h dev_queue_xmit 3092]  
2024-11-15T22:17:33.588500+08:00 a kernel: [net/core/dev.c __dev_queue_xmit 4378]  
2024-11-15T22:17:33.588501+08:00 a kernel: [net/core/dev.c __dev_xmit_skb 3855]  
2024-11-15T22:17:33.588503+08:00 a kernel: [net/sched/sch_generic.c sch_direct_xmit 322]  
2024-11-15T22:17:33.588504+08:00 a kernel: [net/core/dev.c dev_hard_start_xmit 3648]  
2024-11-15T22:17:33.588506+08:00 a kernel: [net/core/dev.c xmit_one 3631]  
2024-11-15T22:17:33.588507+08:00 a kernel: [include/linux/netdevice.h netdev_start_xmit 4922]  
2024-11-15T22:17:33.588509+08:00 a kernel: [include/linux/netdevice.h __netdev_start_xmit 4905] ops->ndo_start_xmit(skb, dev);
2024-11-15T22:17:33.588510+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3200]  
2024-11-15T22:17:33.588512+08:00 a kernel: CPU: 2 PID: 2306 Comm: gnome-terminal- Not tainted 6.9.0+ #3
2024-11-15T22:17:33.588513+08:00 a kernel: Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
2024-11-15T22:17:33.588515+08:00 a kernel: Call Trace:
2024-11-15T22:17:33.588516+08:00 a kernel:  <TASK>
2024-11-15T22:17:33.588518+08:00 a kernel:  dump_stack_lvl+0x76/0xa0
2024-11-15T22:17:33.588519+08:00 a kernel:  dump_stack+0x10/0x20
2024-11-15T22:17:33.588521+08:00 a kernel:  e1000_xmit_frame+0x53/0x1ba0 [e1000]
2024-11-15T22:17:33.588691+08:00 a kernel:  ? vprintk_default+0x1d/0x30
2024-11-15T22:17:33.588694+08:00 a kernel:  ? vprintk+0x41/0x80
2024-11-15T22:17:33.588695+08:00 a kernel:  ? _printk+0x60/0x90
2024-11-15T22:17:33.588696+08:00 a kernel:  netdev_start_xmit+0xdd/0x340
2024-11-15T22:17:33.588699+08:00 a kernel:  dev_hard_start_xmit+0x9a/0x450
2024-11-15T22:17:33.588701+08:00 a kernel:  sch_direct_xmit+0xea/0x450
2024-11-15T22:17:33.588703+08:00 a kernel:  __dev_queue_xmit+0xb40/0x1090
2024-11-15T22:17:33.588704+08:00 a kernel:  ? _printk+0x60/0x90
2024-11-15T22:17:33.588706+08:00 a kernel:  dev_queue_xmit+0x60/0x180
2024-11-15T22:17:33.588708+08:00 a kernel:  neigh_resolve_output+0x147/0x320
2024-11-15T22:17:33.588710+08:00 a kernel:  ip_finish_output2+0x1c8/0x810
2024-11-15T22:17:33.588711+08:00 a kernel:  __ip_finish_output+0xd9/0x280
2024-11-15T22:17:33.588713+08:00 a kernel:  ? vprintk+0x41/0x80
2024-11-15T22:17:33.588715+08:00 a kernel:  ip_finish_output+0x60/0x280
2024-11-15T22:17:33.588717+08:00 a kernel:  ip_output+0x9a/0x260
2024-11-15T22:17:33.588719+08:00 a kernel:  ? __pfx_ip_finish_output+0x10/0x10
2024-11-15T22:17:33.588720+08:00 a kernel:  ip_local_out+0x17d/0x1f0
2024-11-15T22:17:33.588722+08:00 a kernel:  __ip_queue_xmit+0x1bd/0x8b0
2024-11-15T22:17:33.588724+08:00 a kernel:  ip_queue_xmit+0x5b/0x180
2024-11-15T22:17:33.588725+08:00 a kernel:  __tcp_transmit_skb+0xf19/0x1400
2024-11-15T22:17:33.588728+08:00 a kernel:  __tcp_send_ack+0x10c/0x300
2024-11-15T22:17:33.588731+08:00 a kernel:  tcp_send_ack+0x104/0x250
2024-11-15T22:17:33.588732+08:00 a kernel:  __tcp_ack_snd_check+0x95/0x3a0
2024-11-15T22:17:33.588734+08:00 a kernel:  tcp_rcv_established+0x318/0x8a0
2024-11-15T22:17:33.588735+08:00 a kernel:  tcp_v4_do_rcv+0x1d9/0x430
2024-11-15T22:17:33.588737+08:00 a kernel:  tcp_v4_rcv+0x1093/0x1120
2024-11-15T22:17:33.588739+08:00 a kernel:  ? raw_local_deliver+0x194/0x3b0
2024-11-15T22:17:33.588758+08:00 a kernel:  ip_protocol_deliver_rcu+0x8e/0x280
2024-11-15T22:17:33.588762+08:00 a kernel:  ip_local_deliver_finish+0xac/0x1f0
2024-11-15T22:17:33.588765+08:00 a kernel:  ip_local_deliver+0xa3/0x260
2024-11-15T22:17:33.588766+08:00 a kernel:  ip_sublist_rcv_finish+0xbb/0x1e0
2024-11-15T22:17:33.588768+08:00 a kernel:  ip_sublist_rcv+0x16d/0x330
2024-11-15T22:17:33.588770+08:00 a kernel:  ? prb_read_valid+0x1c/0x30
2024-11-15T22:17:33.588781+08:00 a kernel:  ? printk_get_next_message+0x96/0x2b0
2024-11-15T22:17:33.588784+08:00 a kernel:  ip_list_rcv+0x138/0x280
2024-11-15T22:17:33.588794+08:00 a kernel:  __netif_receive_skb_list_core+0x37e/0x3a0
2024-11-15T22:17:33.588808+08:00 a kernel:  netif_receive_skb_list_internal+0x213/0x400
2024-11-15T22:17:33.588810+08:00 a kernel:  ? tcp4_gro_complete+0xbf/0x1f0
2024-11-15T22:17:33.588820+08:00 a kernel:  napi_gro_complete.constprop.0+0x1a1/0x480
2024-11-15T22:17:33.588831+08:00 a kernel:  dev_gro_receive+0x544/0x990
2024-11-15T22:17:33.588841+08:00 a kernel:  napi_gro_receive+0xb4/0x4e0
2024-11-15T22:17:33.590083+08:00 a kernel:  e1000_receive_skb+0xbc/0x1f0 [e1000]
2024-11-15T22:17:33.590183+08:00 a kernel:  e1000_clean_rx_irq+0x334/0xb60 [e1000]
2024-11-15T22:17:33.590271+08:00 a kernel:  e1000_clean+0x35e/0xe10 [e1000]
2024-11-15T22:17:33.590339+08:00 a kernel:  __napi_poll+0x6a/0x490
2024-11-15T22:17:33.590400+08:00 a kernel:  net_rx_action+0x16d/0x3f0
2024-11-15T22:17:33.590402+08:00 a kernel:  handle_softirqs+0x124/0x4d0
2024-11-15T22:17:33.590403+08:00 a kernel:  __do_softirq+0x3f/0x18c
2024-11-15T22:17:33.590404+08:00 a kernel:  __irq_exit_rcu+0xd0/0xf0
2024-11-15T22:17:33.590405+08:00 a kernel:  irq_exit_rcu+0xe/0x20
2024-11-15T22:17:33.590405+08:00 a kernel:  sysvec_apic_timer_interrupt+0x44/0xc0
2024-11-15T22:17:33.590406+08:00 a kernel: [net/ipv4/tcp.c tcp_recvmsg 2651] source ip: 192.168.16.132: 80, dest ip: 101.6.15.130: 80, family: 2,  state: 1
2024-11-15T22:17:33.590409+08:00 a kernel:  asm_sysvec_apic_timer_interrupt+0x1b/0x20
2024-11-15T22:17:33.590410+08:00 a kernel: RIP: 0033:0x7f372e2df6de
2024-11-15T22:17:33.590411+08:00 a kernel: Code: fc ff 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 55 48 89 e5 41 55 41 54 49 89 f4 53 48 89 fb 48 83 ec 08 0f b7 57 08 48 8b 3f <48> 89 d0 83 c2 01 48 85 ff 74 3b 39 57 fc 72 32 f3 41 0f 6f 04 24
2024-11-15T22:17:33.590412+08:00 a kernel: RSP: 002b:00007ffe99698f00 EFLAGS: 00000206
2024-11-15T22:17:33.590413+08:00 a kernel: RAX: 0000000000000036 RBX: 00005fb41ed20e48 RCX: 0000000000000000
2024-11-15T22:17:33.590414+08:00 a kernel: RDX: 0000000000000036 RSI: 00007ffe99698fb0 RDI: 00005fb41f22abb4
2024-11-15T22:17:33.590415+08:00 a kernel: RBP: 00007ffe99698f20 R08: 00005fb41e98631b R09: 0000000000000000
2024-11-15T22:17:33.590416+08:00 a kernel: R10: 0000000000000000 R11: 0000000000000000 R12: 00007ffe99698fb0
2024-11-15T22:17:33.590417+08:00 a kernel: R13: 00005fb41ed20dd8 R14: 00005fb41e986318 R15: 0000000000001ab6
2024-11-15T22:17:33.590417+08:00 a kernel:  </TASK>
2024-11-15T22:17:33.590418+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202] [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202]  ens33
2024-11-15T22:17:33.590419+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3217] name: ens33
2024-11-15T22:17:33.590420+08:00 a kernel: [include/linux/etherdevice.h eth_skb_pad 645]  
2024-11-15T22:17:33.590420+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_tso 2790]  

2024-11-15T22:17:38.621067+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_clean_rx_irq 4650] netdev->stats.rx_packets: 33624, netdev->stats.rx_bytes: 50527630
2024-11-15T22:17:38.621069+08:00 a kernel: [net/ipv4/tcp_output.c tcp_send_delayed_ack 4226] source ip: 192.168.16.132: 443, dest ip: 185.125.188.55: 443, family: 2,  state: 8
2024-11-15T22:17:38.621080+08:00 a kernel: [net/ipv4/tcp.c tcp_recvmsg 2651] source ip: 192.168.16.132: 443, dest ip: 185.125.188.55: 443, family: 2,  state: 8
2024-11-15T22:17:38.623876+08:00 a kernel: [net/ipv4/tcp.c tcp_sendmsg 1364] source ip: 192.168.16.132: 443, dest ip: 185.125.188.55: 443, family: 2,  state: 8
2024-11-15T22:17:38.623896+08:00 a kernel: [net/ipv4/tcp_output.c __tcp_transmit_skb 1460] source ip: 192.168.16.132: 443, dest ip: 185.125.188.55: 443, family: 2,  state: 8
2024-11-15T22:17:38.623898+08:00 a kernel: [net/ipv4/tcp_output.c tcp_event_ack_sent 192] source ip: 192.168.16.132: 443, dest ip: 185.125.188.55: 443, family: 2,  state: 8
2024-11-15T22:17:38.623899+08:00 a kernel: [net/ipv4/tcp_output.c tcp_event_data_sent 173] source ip: 192.168.16.132: 443, dest ip: 185.125.188.55: 443, family: 2,  state: 8
2024-11-15T22:17:38.623900+08:00 a kernel: [net/ipv4/ip_output.c ip_local_out 131] 1
2024-11-15T22:17:38.623901+08:00 a kernel: [net/ipv4/ip_output.c __ip_local_out 107] 1
2024-11-15T22:17:38.623901+08:00 a kernel: [include/linux/netdevice.h dev_queue_xmit 3092]  
2024-11-15T22:17:38.623902+08:00 a kernel: [net/core/dev.c __dev_queue_xmit 4378]  
2024-11-15T22:17:38.623903+08:00 a kernel: [net/core/dev.c __dev_xmit_skb 3855]  
2024-11-15T22:17:38.623903+08:00 a kernel: [net/sched/sch_generic.c sch_direct_xmit 322]  
2024-11-15T22:17:38.623904+08:00 a kernel: [net/core/dev.c dev_hard_start_xmit 3648]  
2024-11-15T22:17:38.623905+08:00 a kernel: [net/core/dev.c xmit_one 3631]  
2024-11-15T22:17:38.623906+08:00 a kernel: [include/linux/netdevice.h netdev_start_xmit 4922]  
2024-11-15T22:17:38.623906+08:00 a kernel: [include/linux/netdevice.h __netdev_start_xmit 4905] ops->ndo_start_xmit(skb, dev);
2024-11-15T22:17:38.623907+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3200]  
2024-11-15T22:17:38.623908+08:00 a kernel: CPU: 0 PID: 804 Comm: snapd Not tainted 6.9.0+ #3
2024-11-15T22:17:38.623909+08:00 a kernel: Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
2024-11-15T22:17:38.623910+08:00 a kernel: Call Trace:
2024-11-15T22:17:38.623911+08:00 a kernel:  <TASK>
2024-11-15T22:17:38.623912+08:00 a kernel:  dump_stack_lvl+0x76/0xa0
2024-11-15T22:17:38.623913+08:00 a kernel:  dump_stack+0x10/0x20
2024-11-15T22:17:38.623913+08:00 a kernel:  e1000_xmit_frame+0x53/0x1ba0 [e1000]
2024-11-15T22:17:38.623914+08:00 a kernel:  ? vprintk_default+0x1d/0x30
2024-11-15T22:17:38.623915+08:00 a kernel:  ? vprintk+0x41/0x80
2024-11-15T22:17:38.623915+08:00 a kernel:  ? _printk+0x60/0x90
2024-11-15T22:17:38.623916+08:00 a kernel:  netdev_start_xmit+0xdd/0x340
2024-11-15T22:17:38.623917+08:00 a kernel:  dev_hard_start_xmit+0x9a/0x450
2024-11-15T22:17:38.623918+08:00 a kernel:  sch_direct_xmit+0xea/0x450
2024-11-15T22:17:38.623919+08:00 a kernel:  __dev_queue_xmit+0xb40/0x1090
2024-11-15T22:17:38.623919+08:00 a kernel:  ? _printk+0x60/0x90
2024-11-15T22:17:38.623920+08:00 a kernel:  ip_finish_output2+0x35d/0x810
2024-11-15T22:17:38.623921+08:00 a kernel:  __ip_finish_output+0xd9/0x280
2024-11-15T22:17:38.623922+08:00 a kernel:  ? vprintk+0x41/0x80
2024-11-15T22:17:38.623923+08:00 a kernel:  ip_finish_output+0x60/0x280
2024-11-15T22:17:38.623923+08:00 a kernel:  ip_output+0x9a/0x260
2024-11-15T22:17:38.623924+08:00 a kernel:  ? __pfx_ip_finish_output+0x10/0x10
2024-11-15T22:17:38.623925+08:00 a kernel:  ip_local_out+0x17d/0x1f0
2024-11-15T22:17:38.623925+08:00 a kernel:  __ip_queue_xmit+0x1bd/0x8b0
2024-11-15T22:17:38.623926+08:00 a kernel:  ip_queue_xmit+0x5b/0x180
2024-11-15T22:17:38.623927+08:00 a kernel:  __tcp_transmit_skb+0xf19/0x1400
2024-11-15T22:17:38.623927+08:00 a kernel:  ? vsnprintf+0x40f/0x590
2024-11-15T22:17:38.623928+08:00 a kernel:  tcp_transmit_skb+0x63/0x190
2024-11-15T22:17:38.623929+08:00 a kernel:  tcp_write_xmit+0x543/0x1700
2024-11-15T22:17:38.623929+08:00 a kernel:  __tcp_push_pending_frames+0x7b/0x3a0
2024-11-15T22:17:38.623930+08:00 a kernel:  tcp_push+0x188/0x400
2024-11-15T22:17:38.623931+08:00 a kernel:  tcp_sendmsg_locked+0xd43/0x10c0
2024-11-15T22:17:38.623931+08:00 a kernel:  tcp_sendmsg+0x118/0x270
2024-11-15T22:17:38.623932+08:00 a kernel:  inet_sendmsg+0x7c/0x1f0
2024-11-15T22:17:38.623933+08:00 a kernel:  sock_sendmsg_nosec+0x18e/0x220
2024-11-15T22:17:38.623933+08:00 a kernel:  sock_write_iter+0x15d/0x280
2024-11-15T22:17:38.623934+08:00 a kernel:  vfs_write+0x2d1/0x6d0
2024-11-15T22:17:38.623935+08:00 a kernel:  ksys_write+0xc9/0x100
2024-11-15T22:17:38.623936+08:00 a kernel:  __x64_sys_write+0x19/0x30
2024-11-15T22:17:38.623936+08:00 a kernel:  x64_sys_call+0x7e/0x25c0
2024-11-15T22:17:38.623937+08:00 a kernel:  do_syscall_64+0x7e/0x180
2024-11-15T22:17:38.623938+08:00 a kernel:  ? wake_up_q+0x83/0x1e0
2024-11-15T22:17:38.623938+08:00 a kernel:  ? futex_wake+0x1b2/0x2e0
2024-11-15T22:17:38.623939+08:00 a kernel:  ? do_futex+0x337/0x3c0
2024-11-15T22:17:38.623940+08:00 a kernel:  ? __do_sys_futex+0x13e/0x2f0
2024-11-15T22:17:38.623940+08:00 a kernel:  ? syscall_exit_to_user_mode+0x72/0x360
2024-11-15T22:17:38.623941+08:00 a kernel:  ? do_syscall_64+0x8b/0x180
2024-11-15T22:17:38.623942+08:00 a kernel:  ? syscall_exit_to_user_mode+0x72/0x360
2024-11-15T22:17:38.623942+08:00 a kernel:  ? do_syscall_64+0x8b/0x180
2024-11-15T22:17:38.623943+08:00 a kernel:  ? do_syscall_64+0x8b/0x180
2024-11-15T22:17:38.623946+08:00 a kernel:  ? clear_bhb_loop+0x15/0x70
2024-11-15T22:17:38.623948+08:00 a kernel: message repeated 2 times: [  ? clear_bhb_loop+0x15/0x70]
2024-11-15T22:17:38.623949+08:00 a kernel:  entry_SYSCALL_64_after_hwframe+0x76/0x7e
2024-11-15T22:17:38.623952+08:00 a kernel: RIP: 0033:0x55a41718252e
2024-11-15T22:17:38.623954+08:00 a kernel: Code: 48 83 ec 38 e8 13 00 00 00 48 83 c4 38 5d c3 cc cc cc cc cc cc cc cc cc cc cc cc cc 49 89 f2 48 89 fa 48 89 ce 48 89 df 0f 05 <48> 3d 01 f0 ff ff 76 15 48 f7 d8 48 89 c1 48 c7 c0 ff ff ff ff 48
2024-11-15T22:17:38.623955+08:00 a kernel: RSP: 002b:000000c000389740 EFLAGS: 00000216 ORIG_RAX: 0000000000000001
2024-11-15T22:17:38.623955+08:00 a kernel: RAX: ffffffffffffffda RBX: 0000000000000012 RCX: 000055a41718252e
2024-11-15T22:17:38.623956+08:00 a kernel: RDX: 0000000000000018 RSI: 000000c00003e480 RDI: 0000000000000012
2024-11-15T22:17:38.623957+08:00 a kernel: RBP: 000000c000389780 R08: 0000000000000000 R09: 0000000000000000
2024-11-15T22:17:38.623958+08:00 a kernel: R10: 0000000000000000 R11: 0000000000000216 R12: 000000c0003898b0
2024-11-15T22:17:38.623958+08:00 a kernel: R13: 000000000000000e R14: 000000c000785340 R15: 0000000000006099
2024-11-15T22:17:38.623959+08:00 a kernel:  </TASK>
2024-11-15T22:17:38.623960+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202] [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3202]  ens33
2024-11-15T22:17:38.623961+08:00 a kernel: [drivers/net/ethernet/intel/e1000/e1000_main.c e1000_xmit_frame 3217] name: ens33
2024-11-15T22:17:38.623961+08:00 a kernel: [include/linux/etherdevice.h eth_skb_pad 645]  

这里要注意,调用栈不一定完全按照函数调用关系打印的。

这个函数对于分析内核源代码执行流程是相当有用的。

相关文章:

【Linux】内核调用栈打印函数dump_stack使用效果

init/main.c的start_kernel示例&#xff0c;这个调用栈不太深&#xff1a; /var/log/dmesg日志&#xff1a; [ 0.000000] kernel: [init/main.c start_kernel 911] start_kernel(void) [ 0.000000] kernel: [kernel/panic.c print_tainted 519 LOG_TIMES: 1 ] [ 0.…...

Uniapp踩坑input自动获取焦点ref动态获取实例不可用

前言 大家好我是没钱的君子下流坯&#xff0c;用自己的话解释自己的知识。很久很更新了&#xff0c;这几个月一直在加班&#xff0c;今天记录一个uniapp关于input中focus()方法自动获取焦点的坑。 案例 为了实现一个手机验证码的页面&#xff0c;验证码是五个输入框&#xf…...

数据分析-47-时间序列变点检测之离线历史数据的CPD

文章目录 1 时间序列结构1.1 变化点的定义1.2 结构变化的类型1.2.1 水平变化1.2.2 方差变化1.3 变点检测1.3.1 离线数据检测方法1.3.2 实时数据检测方法2 模拟数据2.1 模拟恒定方差数据2.2 模拟变化方差数据3 离线数据变点检测3.1 Ruptures模块3.2 恒定方差CPD3.3 变化方差CPD4…...

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…...

生成式GPT商品推荐:精准满足用户需求

生成式GPT商品推荐&#xff1a;精准满足用户需求 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;电商平台正在逐步迎来一场前所未有的变革。尤其是生成式GPT&#xff08;Generative Pre-trained Transformer&#xff09;技术的应用&#xff0c;正在重新定…...

async 和 await的使用

一、需求 点击按钮处理重复提交&#xff0c;想要通过disabled的方式实现。 但是点击按钮调用的方法里有ajax、跳转、弹窗等一系列逻辑操作&#xff0c;需要等方法里流程都走完&#xff0c;再把disabled设为false&#xff0c;这样下次点击按钮时就可以继续走方法里的ajax等操作…...

Spring Cloud Vault快速入门Demo

1.什么是Spring Cloud Vault&#xff1f; Spring Cloud Vault 是 Spring Cloud 生态系统中的一个项目&#xff0c;旨在简化 Spring 应用程序与 HashiCorp Vault 的集成。它提供了一种方便的方式来管理和访问应用程序的敏感配置数据&#xff0c;如数据库凭证、API 密钥和其他机…...

道陟科技EMB产品开发进展与标准设计的建议|2024电动汽车智能底盘大会

11月12日&#xff0c;2024电动汽车智能底盘大会在重庆开幕。会议由中国汽车工程学会主办&#xff0c;电动汽车产业技术创新战略联盟、中国汽车工程学会智能底盘分会、智能绿色车辆与交通全国重点实验室承办。本届大会围绕电动汽车智能底盘相关技术发展与融合&#xff0c;满足高…...

GitHub Org

运营一个GitHub Org&#xff08;组织&#xff09;是一个复杂但充满价值的过程&#xff0c;它涉及多个方面&#xff0c;包括项目管理、团队协作、代码审查、文档维护、社区建设等。以下是一篇关于如何运营GitHub Org的详细指南&#xff0c;旨在帮助组织者更好地管理和维护其GitH…...

unity小:shaderGraph不规则涟漪、波纹效果

实现概述 在本项目中&#xff0c;我们通过结合 Sine、Polar Coordinates 和 Time 节点&#xff0c;实现了动态波纹效果。以下是实现细节&#xff1a; 核心实现 Sine 波形生成&#xff1a; 使用 Sine 节点生成基本的波形。该节点能够创建周期性变化&#xff0c;为波纹效果提供…...

【JavaScript】JavaScript开篇基础(6)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…...

Spark RDD、DStream、DataFrame、DataSet 在窗口操作上的区别

Spark RDD、DStream、DataFrame、DataSet 在窗口操作上的区别 1. Spark RDD 是否支持窗口操作&#xff1a; RDD 本身没有专门的窗口操作算子。原因&#xff1a; RDD 是一个弹性分布式数据集&#xff0c;设计为通用的、不可变的操作单元&#xff0c;主要用于批处理场景。窗口函…...

http自动发送请求工具(自动化测试http请求)

点击下载《http自动发送请求工具(自动化测试http请求)》 前言 在现代软件开发过程中&#xff0c;HTTP 请求的自动化测试是确保应用程序稳定性和可靠性的关键环节。为了满足这一需求&#xff0c;我开发了一款功能强大且易于使用的自动化 HTTP 请求发送工具。该工具基于 C# 开发…...

网络IP地址会经常换吗?深入解析与实操指南

在互联网的生态系统中&#xff0c;IP地址&#xff08;Internet Protocol Address&#xff09;是每台连接设备的唯一标识符&#xff0c;它在网络通信中起着至关重要的作用。然而&#xff0c;不少用户观察到自己的IP地址有时会发生变化&#xff0c;这引发了诸多疑问。本文旨在详细…...

MapLocNet由粗到细的定位网络

论文链接 MapLocNet: Coarse-to-Fine Feature Registration for Visual Re-Localization in Navigation Mapshttps://arxiv.org/html/2407.08561v1 问题背景 当前自动驾驶的定位主要依赖于高精度的地图和GPS信号&#xff0c;但在城市环境中&#xff0c;GPS信号易受到多路径传…...

【Docker】Mac安装Docker Desktop导致磁盘剩余空间较少问题如何解决?

目录 一、背景描述 二、解决办法 三、清理效果 四、理论参考 解决方法 1. 清理未使用的 Docker 镜像、容器和卷 2. 查看 Docker 使用的磁盘空间 3. 调整 Docker 的存储位置 4. 增加磁盘空间 5. 调整 Docker Desktop 配置 6. 使用 Docker 清理工具&#xff08;例如 D…...

构建客服知识库:企业效率提升的关键步骤

客服知识库是企业提升客户服务效率和质量的重要工具。它不仅帮助客服团队快速准确地回答客户问题&#xff0c;还能通过数据分析来优化服务流程和提升客户满意度。 1. 明确知识库的目标和范围 构建客服知识库的第一步是明确其目标和范围。这包括确定知识库的主要用户群体、需要…...

java-Day06 内部类 Lambda表达式 API

内部类 内部类:就是在一个类中定义一个类 格式例: public class Outer { public class Inner { } } 内部类分类 1.成员内部类(了解) 创建成员内部类 外部类.内部类 对象名new外部类().new内部类() 2.静态内部类(了解) 3.局部内部类(了解) 4.匿名内部类…...

Springboot配置全局异常通用返回

Springboot配置全局异常通用返回 前言 前端对接了部分接口后&#xff0c;开始抱怨&#xff0c;“后端接口出参的格式总是千奇百怪&#xff0c;没有一个固定的格式&#xff0c;错误信息提示也不明朗&#xff0c;业务的状态码总是东一个西一个&#xff0c;前端这都不好做统一的…...

计算机视觉在自动驾驶汽车中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 计算机视觉在自动驾驶汽车中的应用 计算机视觉在自动驾驶汽车中的应用 计算机视觉在自动驾驶汽车中的应用 引言 计算机视觉在自动…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...