Skip to content

Instantly share code, notes, and snippets.

💪

Jeremy Ong jeremyong

💪
Block or report user

Report or block jeremyong

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View VkUniqueVector.h
#pragma once
#include <vector>
#include <vulkan/vulkan.hpp>
namespace vkf
{
template <typename Type, typename Dispatch = vk::DispatchLoaderStatic>
class VkUniqueVector
View art-of-debugging.md

Art of Debugging

Obligatory disclaimer, this is all opinion and cannot possibly generalize to all problems, workflows, environments, etc. This is meant primarily as a launching point for an open-ended discussion on best practices in debugging code. This is a sketch of what may be a brief book that covers each point below with anecdotes, examples, and techniques.

Hypothesis 0

The ultimate goal of a debugging session is to rule out possibilities until only one remains. All applications of best practices, techniques, and tools should be pointed at this purpose (contextualize all points below against this statement). Debugging is first and foremost a critical thinking problem, and presence of mind is your most critical asset. Establish a mental model but do not be afraid to invalidate it as the investigation unfolds.

sherlock

Hypothesis 1

@jeremyong
jeremyong / tarball_exe.sh
Last active Jun 10, 2016
Creating a tarball from an executable that includes all dynamically linked libraries
View tarball_exe.sh
#!/usr/bin/env bash
# This function takes a target executable and replicates its link dependencies to the target directory
# Also copies the dependencies to the bin subdirectory of the target
# Arg 1: executable
# Arg 2: output directory
copy_dependencies()
{
echo "Emitting linking dependencies of $1 to $2..."
View keybase.md

Keybase proof

I hereby claim:

  • I am jeremyong on github.
  • I am jeremyong (https://keybase.io/jeremyong) on keybase.
  • I have a public key whose fingerprint is 6B25 C16A 09DF D412 7252 7078 FAEB 4053 B50B 0549

To claim this, I am signing this object:

@jeremyong
jeremyong / State.h
Last active Jan 2, 2016
First pass
View State.h
#pragma once
namespace sel {
class State {
private:
lua_State *_l;
public:
State() : _l(nullptr) { _l = luaL_newstate(); }
State(const Luab &other) = delete;
State &operator=(const Luab &other) = delete;
@jeremyong
jeremyong / main.cpp
Last active Jan 2, 2016
Improved call to a lua function using Luab
View main.cpp
#include <string>
#include <cassert>
#include "selene.h"
int main() {
sel::State state;
l.Load("example.lua")
int difference;
std::string greeting;
View example.lua
function subtract_and_hello(a, b)
return a - b, "hello"
end
@jeremyong
jeremyong / main.cpp
Last active Jan 2, 2016
sample function call to lua file
View main.cpp
#include <string>
#include <cassert>
extern "C" {
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
int main() {
lua_State *l = luaL_newstate();
You can’t perform that action at this time.