#ifdef ENABLE_CHEQUE_SYSTEM
case POINT_CHEQUE:
{
const int64_t nTotalCheque = static_cast<int64_t>(GetCheque()) + static_cast<int64_t>(amount);
if (amount > 0 && nTotalCheque > CHEQUE_MAX)
{
sys_err("[OVERFLOW_CHEQUE] OriCheque %lld AddedCheque %lld id %u Name %s ",
static_cast<long long>(GetCheque()),
static_cast<long long>(amount),
GetPlayerID(),
GetName());
LogManager::instance().CharLog(this, nTotalCheque, "OVERFLOW_CHEQUE", "");
return;
}
SetCheque(nTotalCheque);
val = GetCheque();
}
break;
#endif
pkg install gdb
bende pek işe yaradığı söylenemezMerhaba arkadaşlar,
game.core dosyası hakkında bir araştırma yaptım ve yabancı forumlarda bu konu ile ilgili güzel bilgiler edindim. Files geliştirenler ve açık kaynak dosyalarına sistem yazanlar için yardımcı olabilecek bir bilgi.
Herhangi bir sebepten ötürü oyun game.core verip kanalları düşürüyorsa artık hatanın nereden kaynaklı olduğunu bulabileceksiniz.
Uyarı: Hataları görebilmek için strip edilmemiş game kullanmanız gerekli!
Başlamadan önce kontrol!
ssh ekranında gdb yazdığımızda hata alıyorsanız ilk önce şu paketleri kurun;
Bash:pkg install gdb
Kurulum...
- Whistle
- ch düşme ch düşme sorunu çözümü game.core game.core yazanları öğrenme kanal düşme sorunu kanal düşüyor metin2
- Yanıt: 20
- Forum: C++ / C# / Python
(gdb) core game_r41094.core
[New LWP 100330]
[New LWP 100350]
[New LWP 100351]
[New LWP 100358]
Core was generated by `./srv1-ch1-core1'.
Program terminated with signal SIGSEGV, Segmentation fault.
Address not mapped to object.
#0 0x2102d60d in ?? ()
[Current thread is 1 (LWP 100330)]
(gdb) bt
#0 0x2102d60d in ?? ()
#1 0x00438f51 in ?? ()
#2 0x00000000 in ?? ()
(gdb)
bt full yazmayı dener misin?bende pek işe yaradığı söylenemez
gdb:(gdb) core game_r41094.core [New LWP 100330] [New LWP 100350] [New LWP 100351] [New LWP 100358] Core was generated by `./srv1-ch1-core1'. Program terminated with signal SIGSEGV, Segmentation fault. Address not mapped to object. #0 0x2102d60d in ?? () [Current thread is 1 (LWP 100330)] (gdb) bt #0 0x2102d60d in ?? () #1 0x00438f51 in ?? () #2 0x00000000 in ?? () (gdb)
bt full yazmayı dener misin?
(gdb) core game_r41094.core
[New LWP 100330]
[New LWP 100350]
[New LWP 100351]
[New LWP 100358]
Core was generated by `./srv1-ch1-core1'.
Program terminated with signal SIGSEGV, Segmentation fault.
Address not mapped to object.
#0 0x2102d60d in ?? ()
[Current thread is 1 (LWP 100330)]
(gdb) bt full
#0 0x2102d60d in ?? ()
No symbol table info available.
#1 0x00438f51 in ?? ()
No symbol table info available.
#2 0x00000000 in ?? ()
No symbol table info available.
(gdb)
Bir ihtimal.. olabilir.debug değil de release kullandığım için mi göstermiyor acaba tekrar build aliyim mi gerek var mı
Bir ihtimal.. olabilir.
Ayrıca bu ekranlar bana pek normal gelmedi. Core hiç açılmamış gibi görünüyor. Komutların doğru olduğuna emin misin?
kullandığın gcc sürümü ve gdb sürümü nedir?
Bir ihtimal.. olabilir.
Ayrıca bu ekranlar bana pek normal gelmedi. Core hiç açılmamış gibi görünüyor. Komutların doğru olduğuna emin misin?
kullandığın gcc sürümü ve gdb sürümü nedir?
Core was generated by `./srv1-ch1-core1'.
Program terminated with signal SIGSEGV, Segmentation fault.
Address not mapped to object.
#0 strlen (str=0x2 <error: Cannot access memory at address 0x2>)
at /usr/src/lib/libc/string/strlen.c:92
warning: 92 /usr/src/lib/libc/string/strlen.c: No such file or directory
[Current thread is 1 (LWP 100330)]
(gdb) bt full
#0 strlen (str=0x2 <error: Cannot access memory at address 0x2>)
at /usr/src/lib/libc/string/strlen.c:92
lp = 0x0
va = <optimized out>
p = <optimized out>
vb = <optimized out>
#1 0x20f8e68c in __vfprintf (fp=0xffbfaec4,
locale=0x2103b18c <__xlocale_global_locale>,
fmt0=0x438f16 "[OVERFLOW_CHEQUE] OriCheque %d AddedCheque %d id %u Name %s ",
ap=<optimized out>) at /usr/src/lib/libc/stdio/vfprintf.c:908
xdigs_lower = "0123456789abcdef"
xdigs_upper = "0123456789ABCDEF"
initial = <optimized out>
gs = {thousands_sep = 0x0, thousep_len = 0, grouping = 0x0, lead = 0,
nseps = 0, nrepeats = 0}
fparg = {dbl = 0, ldbl = 0}
expstr = "\000\000\000\000\000\000\000"
io = {fp = 0x30393939, uio = {uio_iov = 0xffbfaec4, uio_iovcnt = -4215224,
uio_resid = 1}, iov = {{iov_base = 0x6, iov_len = 4427593}, {
iov_base = 0x6, iov_len = 4290752055}, {iov_base = 0x1, iov_len = 0},
{iov_base = 0x0, iov_len = 0}, {iov_base = 0x0, iov_len = 0}, {
iov_base = 0x0, iov_len = 0}, {iov_base = 0x0, iov_len = 0}, {
iov_base = 0x0, iov_len = 0}}}
şuanda coreyi açabiliyorumCore dosyası kısayol olduğu için böyle yazıyor .core dosyasının olduğu dizinin görselini atarmısın
Gdb yazdıktan sonra
file srv1-ch1-core1
Yaz sonra BT full yaz öyle bak
OriCheque %llu AddedCheque %llu
Olarak değiştirip denermisin bi
O kod bloğunu atarmısın bi
#ifdef ENABLE_CHEQUE_SYSTEM
case POINT_CHEQUE:
{
const int64_t nTotalCheque = static_cast<int64_t>(GetCheque()) + static_cast<int64_t>(amount);
if (CHEQUE_MAX <= nTotalCheque)
{
sys_err("[OVERFLOW_CHEQUE] OriCheque %d AddedCheque %d id %u Name %s ", GetCheque(), amount, GetPlayerID(), GetName());
LogManager::instance().CharLog(this, GetCheque() + amount, "OVERFLOW_CHEQUE", "");
return;
}
SetCheque(GetCheque() + amount);
val = GetCheque();
}
break;
#endif
deniyorum build alıp denedikten sonra dönüş yapıcamif (CHEQUE_MAX <= nTotalCheque)
Değiştir
if (amount > 0 && GetCheque() > CHEQUE_MAX - amount)
Mobildeyim olmazsa PC geçince bakalım