Enviar pesquisa
Carregar
GDB e Análise de Bugs
•
Transferir como PPTX, PDF
•
0 gostou
•
154 visualizações
Marcelo Altmann
Seguir
Como analisar bugs no MySQL com GDB.
Leia menos
Leia mais
Internet
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 22
Baixar agora
Recomendados
Backup para MySQL
Backup para MySQL
Marcelo Altmann
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Wagner Bianchi
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Wagner Bianchi
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensão
Thiago Paes
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
ernaniaz
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
Thiago Paes
Slides nginx
Slides nginx
Rafael Capucho
Descobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performance
Gustavo Ciello
Recomendados
Backup para MySQL
Backup para MySQL
Marcelo Altmann
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Wagner Bianchi
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Wagner Bianchi
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensão
Thiago Paes
NGiNX, o motor da sua aplicação web
NGiNX, o motor da sua aplicação web
ernaniaz
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
Thiago Paes
Slides nginx
Slides nginx
Rafael Capucho
Descobrindo o Nginx - Um servidor web de alta performance
Descobrindo o Nginx - Um servidor web de alta performance
Gustavo Ciello
Samba4+debian8
Samba4+debian8
Eduardo Charquero
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
CLEYSSON LIMA
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
iG - Internet Group do Brasil S/A
Zabbix Performance Tuning
Zabbix Performance Tuning
Alessandro Silva
Escalando Sites com Nginx
Escalando Sites com Nginx
Tiago Albineli Motta
Percona XtraBackup
Percona XtraBackup
Webgoal
Zabbix
Zabbix
Comandos Linux
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Zabbix BR
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
Thiago Paes
Apresentacao Interna GAE
Apresentacao Interna GAE
Marcio Mangar
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
Claudio Miranda
JBoss-WildFly - Avançado
JBoss-WildFly - Avançado
Adriano Schmidt
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
Rodrigo Zaccara
Prática Laboratório CISCO - Balanceador
Prática Laboratório CISCO - Balanceador
Wellington Oliveira
Prática Laboratório CISCO - NAT
Prática Laboratório CISCO - NAT
Wellington Oliveira
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
Thiago Paes
Performance em Java
Performance em Java
Claudio Miranda
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
Adriano Schmidt
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Werneck Costa
pfSense - Proxy integrado ao AD Regras por usuários e grupos
pfSense - Proxy integrado ao AD Regras por usuários e grupos
Cavalcante Treinamentos
Bricklayer
Bricklayer
Rodrigo Vaz
sys._current_frames(), Radiografando seu software em tempo real
sys._current_frames(), Radiografando seu software em tempo real
Leonardo Rochael Almeida
Mais conteúdo relacionado
Mais procurados
Samba4+debian8
Samba4+debian8
Eduardo Charquero
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
CLEYSSON LIMA
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
iG - Internet Group do Brasil S/A
Zabbix Performance Tuning
Zabbix Performance Tuning
Alessandro Silva
Escalando Sites com Nginx
Escalando Sites com Nginx
Tiago Albineli Motta
Percona XtraBackup
Percona XtraBackup
Webgoal
Zabbix
Zabbix
Comandos Linux
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Zabbix BR
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
Thiago Paes
Apresentacao Interna GAE
Apresentacao Interna GAE
Marcio Mangar
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
Claudio Miranda
JBoss-WildFly - Avançado
JBoss-WildFly - Avançado
Adriano Schmidt
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
Rodrigo Zaccara
Prática Laboratório CISCO - Balanceador
Prática Laboratório CISCO - Balanceador
Wellington Oliveira
Prática Laboratório CISCO - NAT
Prática Laboratório CISCO - NAT
Wellington Oliveira
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
Thiago Paes
Performance em Java
Performance em Java
Claudio Miranda
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
Adriano Schmidt
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Werneck Costa
pfSense - Proxy integrado ao AD Regras por usuários e grupos
pfSense - Proxy integrado ao AD Regras por usuários e grupos
Cavalcante Treinamentos
Mais procurados
(20)
Samba4+debian8
Samba4+debian8
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
Zabbix Performance Tuning
Zabbix Performance Tuning
Escalando Sites com Nginx
Escalando Sites com Nginx
Percona XtraBackup
Percona XtraBackup
Zabbix
Zabbix
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
Apresentacao Interna GAE
Apresentacao Interna GAE
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
JBoss-WildFly - Avançado
JBoss-WildFly - Avançado
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
Prática Laboratório CISCO - Balanceador
Prática Laboratório CISCO - Balanceador
Prática Laboratório CISCO - NAT
Prática Laboratório CISCO - NAT
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
Performance em Java
Performance em Java
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
Apresentação Software Freedom Day 2017 - Natal/RN - Algumas soluções F.O.S.S ...
pfSense - Proxy integrado ao AD Regras por usuários e grupos
pfSense - Proxy integrado ao AD Regras por usuários e grupos
Semelhante a GDB e Análise de Bugs
Bricklayer
Bricklayer
Rodrigo Vaz
sys._current_frames(), Radiografando seu software em tempo real
sys._current_frames(), Radiografando seu software em tempo real
Leonardo Rochael Almeida
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
Daniel Rodrigues de Sousa
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Filipo Mór
Docker - minicurso utfpr 2017
Docker - minicurso utfpr 2017
Fabio Janiszevski
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Pablo Dall'Oglio
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
Joao Galdino Mello de Souza
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Giovanni Bassi
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
tdc-globalcode
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)
PAULO R. DEOLINDO JUNIOR
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
tdc-globalcode
PHP Tools for Fast coding
PHP Tools for Fast coding
Daniel Archer Marques Cramer
Angular Extreme Performance
Angular Extreme Performance
Gustavo Costa
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
Rodrigo Long Chen Kashiwakura
O que você precisa saber sobre ASP.NET CORE
O que você precisa saber sobre ASP.NET CORE
Rodrigo Kono
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
Felipe Ribeiro
Manual Kikrotik Completo
Manual Kikrotik Completo
Portal GSTI
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Gustavo Concon
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
Deixando o código mais amigável para as próximas gerações
Deixando o código mais amigável para as próximas gerações
fabio perrella
Semelhante a GDB e Análise de Bugs
(20)
Bricklayer
Bricklayer
sys._current_frames(), Radiografando seu software em tempo real
sys._current_frames(), Radiografando seu software em tempo real
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Docker - minicurso utfpr 2017
Docker - minicurso utfpr 2017
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Quantas Instruções por Ciclo?
Quantas Instruções por Ciclo?
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
PHP Tools for Fast coding
PHP Tools for Fast coding
Angular Extreme Performance
Angular Extreme Performance
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
O que você precisa saber sobre ASP.NET CORE
O que você precisa saber sobre ASP.NET CORE
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
Manual Kikrotik Completo
Manual Kikrotik Completo
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
Deixando o código mais amigável para as próximas gerações
Deixando o código mais amigável para as próximas gerações
Mais de Marcelo Altmann
Backup Online no MySQL com Percona Xtrabackup
Backup Online no MySQL com Percona Xtrabackup
Marcelo Altmann
Percona XtraBackup - New Features and Improvements
Percona XtraBackup - New Features and Improvements
Marcelo Altmann
Troubleshooting MySQL from a MySQL Developer Perspective
Troubleshooting MySQL from a MySQL Developer Perspective
Marcelo Altmann
Percona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQL
Marcelo Altmann
DB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQL
Marcelo Altmann
Percona Xtrabackup Best Practices
Percona Xtrabackup Best Practices
Marcelo Altmann
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
Marcelo Altmann
A Percona Support Engineer Walkthrough on pt-stalk
A Percona Support Engineer Walkthrough on pt-stalk
Marcelo Altmann
MysQL melhores práticas de seguranca
MysQL melhores práticas de seguranca
Marcelo Altmann
ProxySQL para mysql
ProxySQL para mysql
Marcelo Altmann
Optimizando MySQL
Optimizando MySQL
Marcelo Altmann
MySQL - Melhores práticas de replicação de dados
MySQL - Melhores práticas de replicação de dados
Marcelo Altmann
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Marcelo Altmann
Mais de Marcelo Altmann
(13)
Backup Online no MySQL com Percona Xtrabackup
Backup Online no MySQL com Percona Xtrabackup
Percona XtraBackup - New Features and Improvements
Percona XtraBackup - New Features and Improvements
Troubleshooting MySQL from a MySQL Developer Perspective
Troubleshooting MySQL from a MySQL Developer Perspective
Percona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQL
Percona Xtrabackup Best Practices
Percona Xtrabackup Best Practices
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
A Percona Support Engineer Walkthrough on pt-stalk
A Percona Support Engineer Walkthrough on pt-stalk
MysQL melhores práticas de seguranca
MysQL melhores práticas de seguranca
ProxySQL para mysql
ProxySQL para mysql
Optimizando MySQL
Optimizando MySQL
MySQL - Melhores práticas de replicação de dados
MySQL - Melhores práticas de replicação de dados
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
GDB e Análise de Bugs
1.
© 2020 Percona1 Marcelo
Altmann GDB & Análise de bugs Software Engineer MySQL Brazil Virtual Meetup 2nd Edition 28/05/2020
2.
© 2020 Percona2 Sobre
Mim
3.
© 2020 Percona3 Marcelo
Altmann ▪ Desenvolvedor @ percona • Engenheiro de Suporte Senior @ percona • Líder Técnico @ percona • MySQL DBA @ IEDR (CCTLD Irlanda) ▪ Tecnologo em Sistemas para Internet ▪ Oracle ACE Associate ▪ blog.marceloaltmann.com ▪ Certificaçoes • OCP, MySQL 5.7 Database Administrator • OCP, MySQL 5.6 Database Administrator • OCP, MySQL 5.6 Developer • OCP, MySQL 5 Database Administrator • OCP, MySQL 5 Developer • OCP, MySQL 5.0/5.1/5.5
4.
© 2020 Percona4 We
are hiring! ● Database Engineer Remote (South America) https://jobs.lever.co/percona?lever-via=ppuf96MTKk
5.
© 2020 Percona5 MySQL
está crashando ?!?!?!
6.
© 2020 Percona6 Sessões
do erro
7.
© 2020 Percona7 Sessões
do erro 1 2 3
8.
© 2020 Percona8 Signals ●
Definido em signals.h (linux)
9.
© 2020 Percona9 Signals ●
SIGABRT / 6 - Assertion declaradas no código. ○ ut_a(expressão) / ut_ad(condição) - Deve dar falso. ○ Utilizado para prevenir que erros se propaguem. ● SIGSEGV / 11 - Segmentation Fault ○ Proteção contra acesso inválido de memória. ○ Objeto deletado. ○ Área de memória externo ao programa.
10.
© 2020 Percona10 Stack
traces ▪ Finger print da execução até o momento do crash. ▪ Se Lê de baixo para cima / Bottom top ▪ Comum entre todas stack traces: • handle_fatal_signal() - Responsável por tratar os sinais que abortam o server - https://github.com/percona/percona-server/blob/8.0/sql/signal_handler.cc • my_print_stacktrace() - Responsável por logar a execução do MySQL que falhou. Pode ser desabilitado via --skip-stack-trace
11.
© 2020 Percona11 Stack
traces
12.
© 2020 Percona12 Symbols ▪
Lista de funções do código fonte ▪ ID em hexadecimal ▪ Aumenta o tamanho do binário. ▪ Instalar o pacote -debuginfo
13.
© 2020 Percona13 Symbols ▪nm
-Dn /usr/sbin/mysqld > /tmp/symbols.out ▪ Extrair a assinatura em hexadecimal do stack trace: cat /tmp/stack.tmp | awk -F'[' '{print $2}' | awk - F ']' '{print $1}' > /tmp/stack.out
14.
© 2020 Percona14 Symbols
15.
© 2020 Percona15 GDB ▪
GNU Debugger ▪ Funciona em várias linguagens ▪ With Great Power, comes great responsibility ▪ Pode ser usado: • Remoto • Interpretando processo - gdb -p PID • Rodando processo - gdb --args bin/mysqld [argumentos] --gdb • Offline (coredump) - gdb bin/mysqld core.PID
16.
© 2020 Percona16 GDB ▪
Break point - parar neste ponto quando a execução chegar. ▪ Next - rodar o código até a próxima linha. ▪ Continue - rodar o código até próximo break point. ▪ Step - entrar na função. ▪ Bt - Mostrar Backtrace / Stack trace. ▪ Frame - pular para frame especídico dentro da backtrace.
17.
© 2020 Percona17 Poor
Man's Profiler - PMP ▪ Agregador de stack traces. ▪ Útil para server com muitas threads ▪ https://poormansprofiler.org/ ▪ Parte do Percona Toolkit - pt-pmp
18.
© 2020 Percona18 cscope ▪
Browser para código fonte ▪ Mais otimizado que grep -Ri [texto] =) ▪ https://www.percona.com/blog/2017/09/12/cscope-searching-code-efficiently/ ▪ https://github.com/altmannmarcelo/my_scripts/blob/master/bin/mycscope • Innodb usa .ic • Mensagem de erro são declaradas em .txt (errmsg-utf8.txt, messages_to_clients.txt, messages_to_error_log.txt)
19.
© 2020 Percona19 Mutex ▪
Proteção contra acesso simultaneo a hot area. ▪ Vou ler / escrever em variável X mutex_lock(var_mutex); var = 'bla'; mutex_unlock(var_mutex);
20.
© 2020 Percona20 Link
para gravação https://www.youtube.com/watch?v=WkdWkcDz2Kk
21.
© 2020 Percona21 D
E M O T I M E ! ! ! Fails in 99.9% of the cases!
22.
DATABASE PERFORMANCE MATTERS Database Performance
MattersDatabase Performance MattersDatabase Performance MattersDatabase Performance MattersDatabase Performance Matters Obrigado!
Baixar agora