• Stars
    star
    407
  • Rank 105,572 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created about 10 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Analyses C/C++ build output for code size, static variables, and stack usage
GitHub Link GitHub Workflow Status (branch) Codecov branch PyPI PyPI - Python Version License - MIT

puncover

https://raw.githubusercontent.com/HBehrens/puncover/master/images/overview.png

Analyzes C/C++ binaries for code size, static variables and stack usages. It creates a report with disassembler and call-stack analysis per directory, file, or function.

Installation and Usage

Install with pip:

pip install puncover

Run it by passing the binary to analyze:

puncover --elf_file project.elf
...
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Open the link in your browser to view the analysis.

Running Tests Locally

To run the tests locally, you need to install the development dependencies:

  1. install pyenv: https://github.com/pyenv/pyenv

    curl https://pyenv.run | bash
  2. install all the python environments, using this bashism (this can take a few minutes):

    for _py in $(<.python-version ); do pyenv install ${_py}; done
  3. install the development dependencies:

    pip install -r requirements-dev.txt

Then you can run the tests with:

tox

Publishing Release

  1. Update the version in puncover/__version__.py.

  2. Commit the version update: .. code-block:: bash

    git add . && git commit -m "Bump version to x.y.z"

  3. Create an annotated tag: .. code-block:: bash

    git tag -a {-m=,}x.y.z

  4. Push the commit and tag: .. code-block:: bash

    git push && git push --tags

  5. Either wait for the GitHub Action to complete and download the release artifact for uploading: https://github.com/HBehrens/puncover/actions OR Build the package locally: python setup.py sdist bdist_wheel

  6. Upload the package to PyPI: .. code-block:: bash

    twine upload dist/*

  7. Create GitHub releases: - gh release create --generate-notes x.y.z - attach the artifacts to the release too: gh release upload x.y.z dist/*

Release Script

See scripts/release.sh for a script that automates the above steps.

Contributing

Contributions are welcome! Please open an issue or pull request on GitHub.

More Repositories

1

obj2opengl

script to convert 3D models of OBJ files to C/C++ float arrays (vertices, faces, texture) compatible with OpenGL ES glDrawArrays compatible with iPhone/iPad
C
212
star
2

CamHolderApp

UVC Camera Control for Mac OS X (optimized for MS LifeCam Studio) as software for the CamHolder
Objective-C
43
star
3

android-emulator-skins

High quality Android Emulator skins for Nexus S and Nexus One
32
star
4

pebblex

enables Pebble development with Xcode and AppCode
Ruby
26
star
5

collectIPAMetaData

extract and merge meaningful meta data from iOS IPAs such as URL schemes and app store ID
Python
25
star
6

feedsanitizer

simple web app for Google App Engine to normalize RSS/ATOM feeds
Python
15
star
7

accelerometer-simulator

Use iPhone accelerometer with the iPhone simulator or other apps
Objective-C
13
star
8

peynote

Remote Control Keynote and Deckset from your Pebble
C
11
star
9

fixup_shaper_svg

Fixes malformed SVG to be compatible with Shaper Origin
Python
9
star
10

phonet4n

phonet4n is an extensible phonetic string conversion algorithm. It is a c# implementation of a powerful German phonetic library described in "doppelgaenger gesucht", c't 25/99, p. 252.
C#
8
star
11

RetinaTest-OSX

OSX Cocoa app to demonstrate various HiDPI/Retina techniques
Objective-C
6
star
12

UITabBarControllerOrientation

Forced Orientation for Individual ViewControllers Inside UITabBarController
Objective-C
4
star
13

DNSSDObjects

Objective-C library to use Bonjour services
Objective-C
3
star
14

memfault_logo_anim

Memfault Logo as Animated SVG via CSS Variables and JS logic using GSAP
HTML
3
star
15

pebble_compass_layer

C
2
star
16

Xtext2Workshop

2
star
17

open_urls.py

Scans file for patterns and opens found URLs
Python
2
star
18

pyKeynoteTweet

sends out tweets while you give your presentation with Keynote
Python
1
star
19

xcode5-downgrade-xctest-to-sentest

Minimal example on how to downgrade from Xcode 5's XCTest to SenTest so it works with Xcode, xctool and AppCode
Objective-C
1
star