Assuming you already know what ghc-debug
is about, and want to use it to debug the ghc
program itself.
A recent ghc-debug
checkout is required, since it contains important fixes not release on Hackage yet.
Apply the following patch:
#!/usr/bin/env bash | |
set -euo pipefail | |
apt update | |
apt install -y automake build-essential curl git gnupg libffi-dev libncurses-dev libgmp-dev python3 libdw-dev | |
curl -f -L --retry 5 https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /usr/share/keyrings/llvm-snapshot.gpg | |
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] https://apt.llvm.org/bullseye llvm-toolchain-bullseye main" >> /etc/apt/sources.list.d/llvm-toolchain.list | |
echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] https://apt.llvm.org/bullseye llvm-toolchain-bullseye-18 main" >> /etc/apt/sources.list.d/llvm-toolchain.list |
Wrong exit code for T24171()(expected 0 , actual 2 ) | |
Stderr run ( T24171 ): | |
main: internal error: LDV_recordDead: Failed to find counter for closure 0x42004fd028 | |
(GHC version 9.9.20240111 for x86_64_unknown_linux) | |
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug | |
gmake[1]: *** [Makefile:8: build_and_run] Aborted (core dumped) | |
gmake: *** [Makefile:5: clean_build_and_run] Error 2 | |
*** unexpected failure for T24171(normal) |
Goals: Add links that are reasonable and good explanations of how stuff works. No hype and no vendor content if possible. Practical first-hand accounts and experience preferred (super rare at this point).
#!/usr/bin/env bash | |
set -euo pipefail | |
export CC="ccache clang" | |
export CXX="ccache clang++" | |
export AR=llvm-ar | |
./configure --enable-lto --experimental-enable-pointer-compression --fully-static --ninja | |
ninja -C out/Release -v |
#include <regex.h> | |
#include <stdlib.h> | |
int foo() { | |
const char *target_string = "hello wasm"; | |
const char *pattern = "wasm"; | |
regex_t regex_compiled; | |
int return_code; |
cmake -G Ninja \ | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ | |
-DCMAKE_C_COMPILER=clang \ | |
-DCMAKE_CXX_COMPILER=clang++ \ | |
-DLLVM_CCACHE_BUILD=ON \ | |
-DLLVM_ENABLE_TERMINFO=OFF \ | |
-DLLVM_ENABLE_ZLIB=OFF \ | |
-DLLVM_ENABLE_ZSTD=OFF \ | |
-DLLVM_HAVE_LIBXAR=OFF \ |
{ | |
// Use IntelliSense to learn about possible attributes. | |
// Hover to view descriptions of existing attributes. | |
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | |
"version": "0.2.0", | |
"configurations": [{ | |
"name": "clang", | |
"type": "cppdbg", | |
"request": "launch", | |
"program": "${workspaceRoot}/build/install/opt/wasi-sdk/bin/clang", |
{ | |
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; | |
inputs.haskell-nix.url = "github:input-output-hk/haskell.nix"; | |
inputs.haskell-nix.inputs.nixpkgs-unstable.follows = "nixpkgs"; | |
outputs = { self, haskell-nix, nixpkgs, }: | |
haskell-nix.inputs.flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: | |
let | |
pkgs = import nixpkgs { | |
inherit system; |
for(let e of document.getElementsByClassName("inspector_torrent_file_list_entryodd")) { | |
if (e.children[2].innerText.includes("padding_file") && e.children[0].checked) { | |
e.children[0].click(); | |
} | |
} |