Core Dosyası Nasıl Açılır?

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 60

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Core dosyalarını açmak için genelde GDB(Gnu Debugger) kullanıyoruz. GDB, FreeBSD dağıtımlarında birşey yüklemeseniz bile bulunmakta.
Ancak işletim sistemimizin tipi amd64(x64-64bit) ise bu GDB dağıtımı ile core dosyalarını okumak için bazı şeyler yapmamız gerekmektedir. İşlem sırasında hata almanız durumunda hatalar bölümüne göz atın.

1.Öncelikli olarak core dosyamızın bulunduğu dizini kopyalayalım ve dizine girelim.
Kullanım:
<code class="bbCodeInline">cd --dizin-- </code>
Örnek kullanım:
<code class="bbCodeInline">cd /usr/game/cores/channel1/core1/</code>

2.gdb uygulamasını dizin içerisindeyken başlatalım.
<code class="bbCodeInline">gdb</code>

3.Açacağımız core dosyasını çıkartan dosyamızı seçelim.(db.core için 'db', game.core için 'game', qc.core için 'qc')
<code class="bbCodeInline">file game</code>

4.Artık core dosyamızı seçebiliriz.
<code class="bbCodeInline">core --core dosyası adı-</code>
Örnek kullanım:
<code class="bbCodeInline">core game.core</code>

5.Core dosyamız açıldı. Bu komutu girerek backtrace yapalım.
<code class="bbCodeInline">bt</code>
Binary dosyamızın kendisini kapatmasına sebep olan stack'i izleyebilirsiniz.
<code class="bbCodeInline">bt</code> yerine <code class="bbCodeInline">bt full</code> yazarak full backtrace görebilirsiniz.

Hatalar:
1.Eğer sistemimiz amd64 ise ve binary dosyamız 32bit olarak derlendiyse. Böyle bir hata alacaksınız.
Bu kodu yazdığınızda güncel gdb sürümü kurulacaktır. 2.Adımdan devam edebilirsiniz.
<code class="bbCodeInline">pkg install -y gdb</code>

Core Dosyası Nedir?
Metin2 sunucularında çalışan sistemlerde core dosyası, uygulamanın beklenmedik şekilde çökmesi durumunda sistem tarafından otomatik olarak üretilen bir bellek dökümüdür. Bu dosya sayesinde geliştiriciler, hangi satırda veya fonksiyonda hata oluştuğunu analiz edebilir. Özellikle Metin2 FreeBSD tabanlı sunucularda bu dosyalar büyük önem taşır. Çünkü FreeBSD sistemlerde core dump yapılandırması farklı olabilir ve doğru şekilde açılıp analiz edilmelidir.

FreeBSD Sistemlerde Core Dosyası Oluşturma
FreeBSD tabanlı Metin2 sunucularda core dosyasının oluşturulabilmesi için öncelikle sistem seviyesinde dump ayarları yapılmalıdır. Bu ayarlar genellikle sysctl.conf dosyasında tanımlanır. Örnek olarak:

Kod:
[BR][/BR]kern.corefile=/var/crash/core.%P.%U.%N.%T[BR][/BR]kern.sugid_coredump=1[BR][/BR]


%P: Process ID
%U: User ID
%N: Node name
%T: Timestamp

Bu yapılandırmayı yaptıktan sonra sistemde core dosyaları /var/crash dizinine yazılacaktır. Ancak bu dizin önceden oluşturulmalı ve doğru izinler verilmelidir.

Core Dosyasını Açmak İçin Kullanılan Araçlar
Core dosyasını açmak için FreeBSD üzerinde yaygın olarak gdb (GNU Debugger) aracı kullanılır. GDB, core dosyası üzerinden programın çökme anındaki bellek durumu, değişken içerikleri, stack trace gibi önemli bilgilere ulaşmanıza olanak tanır.

GDB kurulumu için:

Kod:
pkg install gdb[BR][/BR]


GDB ile core dosyasını açmak için aşağıdaki komutu kullanabilirsiniz:

Kod:
gdb /path/to/executable /path/to/core[BR][/BR]


Örneğin, Metin2 authserver çöktüyse ve core dosyası oluştuysa:

Kod:
gdb authserver /var/crash/core.authserver.1001.localhost.1701234567[BR][/BR]


Core Dosyası Analizi Nasıl Yapılır?
GDB başlatıldığında, core dosyası yüklenecek ve çökme anındaki durum geri getirilecektir. Ardından şu komutlarla analiz yapılabilir:

bt – Stack trace gösterir.
info registers – Register içeriklerini gösterir.
list – Kod satırlarını görüntüler (source code varsa).
print variable_name – Belirtilen değişkenin değerini gösterir.

Bu komutlar yardımıyla geliştirici, çökmenin nedenini belirleyebilir.

Metin2 FreeBSD Sunucularda Core Dump Güvenliği
FreeBSD üzerinde Metin2 sunucular çalışırken core dump'ların güvenliği önemlidir. Core dosyaları hassas veriler içerebilir. Bu yüzden dump dosyaları sadece root kullanıcıya erişilebilir olmalı ve doğru izinlerle korunmalıdır. Örnek izin yapılandırması:

Kod:
chmod 600 /var/crash/[BR][/BR]chown root:wheel /var/crash/[BR][/BR]


Python ve Script Tabanlı Core Analizi
Geliştiriciler bazen core dosyalarını manuel analiz etmek yerine Python scriptleri ile analiz etmeyi tercih edebilir. FreeBSD üzerinde Python kurulumu için:

Kod:
pkg install python[BR][/BR]


Python ile core dosyası okuma işlemleri için pycoredump gibi kütüphaneler kullanılabilir. Bu tür scriptlerle daha hızlı analiz yapılabilir.

Sonuç
Core dosyası analizi, Metin2 FreeBSD sunucularında çökmelerin nedenlerini anlamak için kritik bir araçtır. Doğru yapılandırılmış FreeBSD sistemlerde core dump alınması, analiz edilmesi ve güvenli saklanması, sunucu kararlılığını artırır. Bu yazıda, FreeBSD tabanlı Metin2 sistemlerde core dosyasının nasıl açılacağı, analiz edileceği ve güvenli hale getirileceği ele alındı. Daha fazla bilgi için Metin2 Lobby sitesini ziyaret edebilirsiniz.


What is a Core File?
In systems running Metin2 servers, a core file is a memory dump automatically generated by the system when an application crashes unexpectedly. Thanks to this file, developers can analyze where the error occurred, such as on which line or function. Especially on Metin2 FreeBSD-based servers, these files are very important. Because core dump configurations may differ on FreeBSD systems, they must be opened and analyzed correctly.

Creating Core Files on FreeBSD Systems
To enable core file generation on FreeBSD-based Metin2 servers, system-level dump settings must first be configured. These settings are typically defined in the sysctl.conf file. For example:

Kod:
[BR][/BR]kern.corefile=/var/crash/core.%P.%U.%N.%T[BR][/BR]kern.sugid_coredump=1[BR][/BR]


%P: Process ID
%U: User ID
%N: Node name
%T: Timestamp

After applying this configuration, core files will be written to the /var/crash directory. However, this directory must be created beforehand and proper permissions should be granted.

Tools Used to Open Core Files
The most commonly used tool for opening core files on FreeBSD is gdb (GNU Debugger). GDB allows you to access important information such as the memory state at the moment of crash, variable contents, stack trace, etc., from the core file.

To install GDB:

Kod:
pkg install gdb[BR][/BR]


To open a core file with GDB, use the following command:

Kod:
gdb /path/to/executable /path/to/core[BR][/BR]


For example, if the Metin2 authserver crashed and a core file was generated:

Kod:
gdb authserver /var/crash/core.authserver.1001.localhost.1701234567[BR][/BR]


How to Analyze a Core File?
Once GDB is launched, the core file will be loaded and the state at the time of the crash will be restored. Then, the following commands can be used for analysis:

bt – Displays the stack trace.
info registers – Shows register contents.
list – Displays source code lines (if available).
print variable_name – Shows the value of the specified variable.

With these commands, the developer can determine the cause of the crash.

Core Dump Security on Metin2 FreeBSD Servers
Security of core dumps is important when running Metin2 servers on FreeBSD. Core files may contain sensitive data. Therefore, dump files must be accessible only to the root user and protected with appropriate permissions. Example permission configuration:

Kod:
chmod 600 /var/crash/[BR][/BR]chown root:wheel /var/crash/[BR][/BR]


Python and Script-Based Core Analysis
Developers sometimes prefer to analyze core files using Python scripts instead of manual analysis. To install Python on FreeBSD:

Kod:
pkg install python[BR][/BR]


Libraries like pycoredump can be used to read core files via Python. Such scripts allow faster analysis.

Conclusion
Analyzing core files is a critical tool for understanding the causes of crashes on Metin2 FreeBSD servers. Properly configured FreeBSD systems that generate, analyze, and securely store core dumps increase server stability. This article discussed how to open, analyze, and secure core files on Metin2 FreeBSD-based systems. For more information, visit Metin2 Lobby.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt