To get the docker images:
docker pull klee/klee
docker pull angr/angr
Start docker:
# inspired by http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/ | |
import sys | |
import clang.cindex | |
def verbose(*args, **kwargs): | |
'''filter predicate for show_ast: show all''' | |
return True | |
def no_system_includes(cursor, level): | |
'''filter predicate for show_ast: filter out verbose stuff from system include files''' |
if(GlobalVariable* GA = M.getGlobalVariable("llvm.global.annotations")) { | |
// the first operand holds the metadata | |
for (Value *AOp : GA->operands()) { | |
// all metadata are stored in an array of struct of metadata | |
if (ConstantArray *CA = dyn_cast<ConstantArray>(AOp)) { | |
// so iterate over the operands | |
for (Value *CAOp : CA->operands()) { | |
// get the struct, which holds a pointer to the annotated function | |
// as first field, and the annotation as second field | |
if (ConstantStruct *CS = dyn_cast<ConstantStruct>(CAOp)) { |
#!/bin/bash | |
# Installation: | |
# cd my_gitproject | |
# wget -O pre-commit.sh http://tinyurl.com/mkovs45 | |
# ln -s ../../pre-commit.sh .git/hooks/pre-commit | |
# chmod +x pre-commit.sh | |
function have_uncommitted() | |
{ | |
lines=$(git diff --name-only | wc -l) |
There is sometimes a situation in which one needs to get the relative offset of a structure field, common examples of this include serialization frameworks which aid to serialize objects, vertex attributes for rendering (D3D, GL.), etc.
The most common technique for getting this information is through the offsetof
macro defined in stddef.h
. Unfortunately using the macro in C++ comes with a
new set of restrictions that prevent some (subjectively valid) uses of it.
# Boolean | |
op.add_column('projects', sa.Column('is_closed', sa.Boolean(), server_default=sa.schema.DefaultClause("0"), nullable=False)) | |
# DateTime | |
op.add_column('projects_users', sa.Column('created_at', sa.DateTime(), server_default=sa.func.current_timestamp(), nullable=False)) |
#requires -version 2 | |
<# | |
.SYNOPSIS | |
Time-base One-Time Password Algorithm (RFC 6238) | |
.DESCRIPTION | |
This is an implementation of the RFC 6238 Time-Based One-Time Password Algorithm draft based upon the HMAC-based One-Time Password (HOTP) algorithm (RFC 4226). This is a time based variant of the HOTP algorithm providing short-lived OTP values. | |
.NOTES | |
Version: 1.0 |
#include <GL/glew.h> | |
#include <GLFW/glfw3.h> | |
#include <iostream> | |
#include <string> | |
void PrintOpenGLErrors(char const * const Function, char const * const File, int const Line) | |
{ |
include(CMakeParseArguments) | |
# Function to wrap a given string into multiple lines at the given column position. | |
# Parameters: | |
# VARIABLE - The name of the CMake variable holding the string. | |
# AT_COLUMN - The column position at which string will be wrapped. | |
function(WRAP_STRING) | |
set(oneValueArgs VARIABLE AT_COLUMN) | |
cmake_parse_arguments(WRAP_STRING "${options}" "${oneValueArgs}" "" ${ARGN}) |
-- cd to the current finder window folder in iTerm. Or drag a folder onto this script to cd to that folder in iTerm. | |
-- found this script in the comments of this article: http://www.macosxhints.com/article.php?story=20050924210643297 | |
-- Instructions for use: | |
-- paste this script into Script Editor and save as an application to ~/Library/Scripts/Applications/Finder/cd to in iTerm | |
-- run via the AppleScript Menu item (http://www.apple.com/applescript/scriptmenu/) | |
-- Or better yet, Control-click and drag it to the top of a finder window so it appears in every finder window. | |
-- Activate it by clicking on it or dragging a folder onto it. | |
-- Another nice touch is to give the saved script the same icon as iTerm. |