• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    LUDO
    LUDO --- ---
    dobre photoshop skillz
    XCHAOS
    XCHAOS --- ---
    Neměli by tam radši něco Carbon neutral? :-)
    JANFROG
    JANFROG --- ---
    GIOMIKY: Nejsem buh, jen nam zkusenosti. Hodiny stravene v GDB ladenim podobnych (a mnohem "zajimavejsich") problemu :-)

    > za linkovaci figl
    Ta SO odpoved to vysvetluje.
    JANFROG
    JANFROG --- ---
    GIOMIKY: Mas to IMHO blbe slinkovane:

    Program received signal SIGSEGV, Segmentation fault.
    0x0000000000000000 in ?? ()
    (gdb) up
    #1  0x000000000073ebec in __register_frame_info_bases.part.5 ()
    (gdb) disass
    Dump of assembler code for function __register_frame_info_bases.part.5:
       0x000000000073ebb0 <+0>:	push   %rbp
       0x000000000073ebb1 <+1>:	push   %rbx
       0x000000000073ebb2 <+2>:	mov    %rsi,%rbx
       0x000000000073ebb5 <+5>:	sub    $0x8,%rsp
       0x000000000073ebb9 <+9>:	mov    $0x67ecd0,%rbp
       0x000000000073ebc0 <+16>:	movq   $0xffffffffffffffff,(%rsi)
       0x000000000073ebc7 <+23>:	mov    %rdx,0x8(%rsi)
       0x000000000073ebcb <+27>:	mov    %rcx,0x10(%rsi)
       0x000000000073ebcf <+31>:	mov    %rdi,0x18(%rsi)
       0x000000000073ebd3 <+35>:	movq   $0x7f8,0x20(%rsi)
       0x000000000073ebdb <+43>:	test   %rbp,%rbp
       0x000000000073ebde <+46>:	je     0x73ebec <__register_frame_info_bases.part.5+60>
       0x000000000073ebe0 <+48>:	lea    0x1bf319(%rip),%rdi        # 0x8fdf00 <object_mutex>
       0x000000000073ebe7 <+55>:	call   0x0 ; <--- ?!?
    => 0x000000000073ebec <+60>:	mov    0x1bf345(%rip),%rax        # 0x8fdf38 <unseen_objects>
       0x000000000073ebf3 <+67>:	mov    %rbx,0x1bf33e(%rip)        # 0x8fdf38 <unseen_objects>
       0x000000000073ebfa <+74>:	mov    %rax,0x28(%rbx)
       0x000000000073ebfe <+78>:	mov    0x1bf324(%rip),%eax        # 0x8fdf28 <any_objects_registered>
       0x000000000073ec04 <+84>:	test   %eax,%eax
       0x000000000073ec06 <+86>:	je     0x73ec30 <__register_frame_info_bases.part.5+128>
       0x000000000073ec08 <+88>:	test   %rbp,%rbp
       0x000000000073ec0b <+91>:	je     0x73ec20 <__register_frame_info_bases.part.5+112>
       0x000000000073ec0d <+93>:	add    $0x8,%rsp
       0x000000000073ec11 <+97>:	lea    0x1bf2e8(%rip),%rdi        # 0x8fdf00 <object_mutex>
       0x000000000073ec18 <+104>:	pop    %rbx
       0x000000000073ec19 <+105>:	pop    %rbp
       0x000000000073ec1a <+106>:	jmp    0x0  ; <--- ?!?
       0x000000000073ec1f <+111>:	nop
       0x000000000073ec20 <+112>:	add    $0x8,%rsp
       0x000000000073ec24 <+116>:	pop    %rbx
       0x000000000073ec25 <+117>:	pop    %rbp
       0x000000000073ec26 <+118>:	ret    
       0x000000000073ec27 <+119>:	nopw   0x0(%rax,%rax,1)
    --Type <RET> for more, q to quit, c to continue without paging--
    

    rychle stackoverllowing naslo: https://stackoverflow.com/questions/35116327/when-g-static-link-pthread-cause-segmentation-fault-why.
    JANFROG
    JANFROG --- ---
    GIOMIKY: Zkusim na to mrknout vecer, bude-li cas.

    > Ty debug symboly jsem mpodle mne nainstaloval.
    To je sice hezky, ale pokud nema binarka link na ty symboly, GDB nema jak vedet kde je najde. Doporucuji si precist dokumentaci: https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

    > Stack vypada takhle:
    Muj tip je ze to je spatne slinkovane. Lehne to jeste v inicializaci pred volanim main().
    Udelej si testovaci program co vola openssl a uvidis.
    JANFROG
    JANFROG --- ---
    GIOMIKY: dej mi nekam tu statickou binarku, podivam se na to.

    > libc6 z balicku jsem v /usr/src rozbalil a pridal do gdb dir, ale stale mi gdb pise ?? u vetsiny funkci pri core dumlu

    zdrojaky jsou k nicemu, kdyz GDB nema (nevi kde najit) symboly - proto to ??
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    ANT_39: Připomíná to Tiny C
    ANT_39
    ANT_39 --- ---
    By mohlo zajimat XCHAOSe:
    GitHub - riicchhaarrd/ocean: Programming language that compiles into a x86 ELF executable.
    https://github.com/riicchhaarrd/ocean
    XCHAOS
    XCHAOS --- ---
    2483: Linked List Interview Problem - explain xkcd
    https://explainxkcd.com/wiki/index.php/2483:_Linked_List_Interview_Problem
    SPIRALI
    SPIRALI --- ---
    XCHAOS: Posledni 3 roky v tom pisu ruzne systemy na distribuovane vypocty a nedam na Rust dopustit. Kompletne mi z workflow vypadla cast dlouhych veceru nad Valgrindem. Pro me ucely doslo k uplne nahrade za C/C++. Btw: Dekuji za impulz, podal jsem zadost o zalozeni Rust klubu.
    WILD_A
    WILD_A --- ---
    XCHAOS: Zatím jen experimenty abych se s tím seznámil a zatím dobrý dojem. Imho je to dobrá alternativa, cením hlavně “jistotu”, že si neprasim paměť :)
    XCHAOS
    XCHAOS --- ---
    No, tak když už je teď NYX přepsaný do Rustu, tak jsem si všiml, že tu nemáme žádný klub o Rustu.... už v tom někdo programujete? Možná je skutečně cesta, na rozdíl od vymýšlení těch mých nesmyslů...-
    LWEEK
    LWEEK --- ---
    Nenašel by se tu ostřílený programátor C, který by měl po večerech čas se přidat k hodně slibnému cybersecurity startupu? Kdyžtak pls pošta.
    XCHAOS
    XCHAOS --- ---
    John Carmack i Elon Musk preferují Céčko :-)
    https://twitter.com/ID_AA_Carmack/status/1299571656738902017
    XCHAOS
    XCHAOS --- ---
    Konkrétně, skrz sys_clone:
    linux kernel - What are parameters of sys_clone() system call and how to hook it in Ubuntu? - Stack Overflow
    https://stackoverflow.com/...at-are-parameters-of-sys-clone-system-call-and-how-to-hook-it-in-ubuntu
    Druhý parametr tohohle volání jádra je pointer na vlastní stack vlákna, bez kterého by spuštění vlákna bylo nebezpečné a skoro nepoužitelné.

    (Bylo by to Linux specifické, ne POSIXové... a samozřejmě, když by se rozhodli to API mezi verzemi kernelu nějak změnit, tak se mi to celé sesype... ale mě se POSIXové thready nezamlouvají jako vhodný způsob myšlení o paralelizaci kódu)
    Kliknutím sem můžete změnit nastavení reklam