Download Affinic Debugger Gui (gdb/lldb For Mac

Download3k has downloaded and tested version 2.0.1 of Affinic Debugger (GDB/LLDB) for Mac OS X - Lite Version on 11 Jan 2016 using only the best antivirus engines available Today. Sep 18, 2013  Most of the time, you use the LLDB debugger indirectly through the Xcode debugging features, and you issue LLDB commands using the Xcode console pane. But for development of open source and other non-GUI based application debugging, LLDB is used from a Terminal window as a conventional command line debugger.

This chapter describes the workflow and operations in a basic Terminal debugging session. Where appropriate, LLDB operations are compared to similar GDB operations.

Most of the time, you use the LLDB debugger indirectly through the Xcode debugging features, and you issue LLDB commands using the Xcode console pane. But for development of open source and other non-GUI based application debugging, LLDB is used from a Terminal window as a conventional command line debugger. To use LLDB as a command-line debugger, you should understand how to:

  • Load a process for debugging

  • Attach a running process to LLDB

  • Set breakpoints and watchpoints

  • Control the process execution

  • Navigate in the process being debugged

  • Inspect variables for state and value

  • Execute alternative code

The Xcode IDE automates many of these operations with its full integration of LLDB into the source editing, build, and “run for debugging” cycle with graphical controls. Knowing how these operations work from the command line also helps you understand and use the full power of the LLDB debugger in the Xcode console pane.

Specifying the Program to Debug

First, you need to set the program to debug. As with GDB, you can start LLDB and specify the file you want to debug using the command line. Type:

Affinic Debugger Gui

Or you can specify the executable file to debug after it is already running using the file command:

Setting Breakpoints

Next, you might want to set up breakpoints to begin your debugging after the process has been launched. Setting breakpoints was discussed briefly in LLDB Command Structure. To see all the options for breakpoint setting, use help breakpoint set. For instance, type the following to set a breakpoint on any use of a method named alignLeftEdges::

To find out which breakpoints you've set, type the breakpoint list command and examine what it returns as follows:

In LLDB there are two parts to a breakpoint: the logical specification of the breakpoint, which is what the user provides to the breakpoint set command, and the locations in the code that match that specification. For example, a break by selector sets a breakpoint on all the methods that implement that selector in the classes in your program. Similarly, a file and line breakpoint might result in multiple locations if that file and line are included inline in different places in your code.

One piece of information provided by the breakpoint list command output is that the logical breakpoint has an integer identifier, and its locations have identifiers within the logical breakpoint. The two are joined by a period (.)—for example, 1.1 in the example above.

Because the logical breakpoints remain live, if another shared library is loaded that includes another implementation of the alignLeftEdges: selector, the new location is added to breakpoint 1 (that is, a 1.2 breakpoint is set on the newly loaded selector).

The other piece of information in the breakpoint listing is whether the breakpoint location was resolved or not. A location is resolved when the file address it corresponds to gets loaded into the program being debugged. For instance, if you set a breakpoint in a shared library that later is unloaded, that breakpoint location remains but it is no longer resolved.

LLDB acts like GDB with the command:

Like GDB, LLDB always makes a breakpoint from your specification, even if it didn’t find any locations that match the specification. To determine whether the expression has been resolved, check the locations field using breakpoint list. LLDB reports the breakpoint as pending when you set it. By looking at the breakpoints with pending status, you can determine whether you’ve made a typo in defining the breakpoint when no locations are found by examining the breakpoint set output. For example:

Download Affinic Debugger Gui (gdb/lldb For Mac)

Either on all the locations generated by your logical breakpoint, or on any one of the particular locations that logical breakpoint resolved to, you can delete, disable, set conditions, and ignore counts using breakpoint-triggered commands. For instance, if you want to add a command to print a backtrace when LLDB hit the breakpoint numbered 1.1, you execute the following command:

By default, the breakpoint command add command takes LLDB command-line commands. To specify this default explicitly, pass the --command option (breakpoint command add --command ...). Use the --script option if you implement your breakpoint command using a Python script instead. The LLDB help system has extensive information explaining breakpoint command add.

Setting Watchpoints

In addition to breakpoints, LLDB supports watchpoints to monitor variables without stopping the running process. Use help watchpoint to see all the commands for watchpoint manipulations. For instance, enter the following commands to watch a variable named global for a write operation, and to stop only if the condition ‘(global5)’ is true:

Launching the Program with LLDB

Once you’ve specified what program you are going to debug and set a breakpoint to halt it at some interesting location, you need to start (or launch) it into a running process. To launch a program with LLDB, use the process launch command or one of its built-in aliases:

You can also attach LLDB to a process that is already running—the process running the executable program file you specified earlier—by using either the process ID or the process name. When attaching to a process by name, LLDB supports the --waitfor option. This option tells LLDB to wait for the next process that has that name to appear and then attach to it. For example, here are three commands to attach to the Sketch process, assuming that the process ID is 123:

After you launch or attach LLDB to a process, the process might stop for some reason. For example:

Note the line that says “1 of 3 threads stopped with reasons:” and the lines that follow it. In a multithreaded environment, it is very common for more than one thread to hit your breakpoint(s) before the kernel actually returns control to the debugger. In that case, you will see all the threads that stopped for the reason listed in the stop message.

Controlling Your Program

After launching, LLDB allows the program to continue until you hit a breakpoint. The primitive commands for process control all exist under the thread command hierarchy. Here’s one example:

Note: In its present version (lldb-300.2.24), LLDB can operate on only one thread at a time, but it is designed to support saying “step over the function in Thread 1, and step into the function in Thread 2, and continue Thread 3”, and so on in a future revision.

For convenience, all the stepping commands have easy aliases. For example, thread continue is invoked with just c, and the same goes for the other stepping program commands—which are much the same as in GDB. For example:

By default, LLDB has defined aliases to all common GDB process control commands (for instance, s, step, n, next, finish). If you find that GDB process control commands you are accustomed to using don’t exist, you can add them to the ~/.lldbinit file using command alias.

LLDB also supports the step by instruction versions:

LLDB has a run until line or frame exit stepping mode:

This command runs the thread until the current frame reaches line 100. If the code skips around line 100 in the course of running, execution stops when the frame is popped off the stack. This command is a close equivalent to the GDB until command.

LLDB, by default, shares the terminal with the process being debugged. In this mode, much like debugging with GDB, when the process is running anything you type goes to the STDIN of the process being debugged. To interrupt that process, type CTRL+C.

However, if you attach to a process—or launch a process—with the --no-stdin option, the command interpreter is always available to enter commands. Always having an (lldb) prompt might be a little disconcerting to GDB users at first, but it is useful. Using the --no-stdin option allows you to set a breakpoint, watchpoint, and so forth, without having to explicitly interrupt the program you are debugging:

There are many LLDB commands that won’t work while the process being debugged is running: The command interpreter lets you know when a command is inappropriate most of the time. (If you find any instances where the command interpreter isn’t flagging a problem case, please file a bug: bugreport.apple.com.)

Download Affinic Debugger Gui (gdb/lldb For Mac

The commands that work while a process is running include interrupting the process to halt execution (process interrupt), getting the process status (process status), breakpoint setting and clearing (breakpoint [set|clear|enable|disable|list] ...), and memory reading and writing (memory [read|write] ...).

The subject of disabling STDIN for a process running in LLDB presents a good opportunity to show how to set debugger properties in general. For example, if you always want to run in --no-stdin mode, set it as a generic process property using the LLDB settings command. The LLDB settings command is equivalent to the GDB set command. To do this, type:

In LLDB, settings are organized hierarchically, enabling you to discover them easily. In addition, almost anywhere that you can specify a setting on a generic entity (threads, for example), you can also apply the option to a particular instance. View the current LLDB settings with the settings list command. You can explore how the settings command works in detail using the help settings command.

Examining Thread State

After a process has stopped, LLDB chooses a current thread and a current frame in that thread (on stop, this is always the bottommost frame). Many of the commands for inspecting state work on this current thread or frame.

To inspect the current state of the process, start with these threads:

The asterisk (*) indicates that thread #1 is the current thread. To get a backtrace for that thread, enter the thread backtrace command:

Provide a list of threads to backtrace, or use the keyword all to see all threads.

Set the selected thread, the one which will be used by default in all the commands in the next section, with the thread select command, where the thread index is the one shown in the thread list listing, using

Examining the Stack Frame State

The most convenient way to inspect a frame’s arguments and local variables is to use the frame variable command.

If you don’t specify any variable names, all arguments and local variables are shown. If you call frame variable, passing in the name or names of particular local variables, only those variables are printed. For instance:

You can pass in a path to some subelement of one of the available locals, and that subelement is printed. For instance:

The frame variable command is not a full expression parser, but it does support a few simple operations such as &, *, ->, [] (no overloaded operators). The array brackets can be used on pointers to treat pointers as arrays. For example:

The frame variable command performs “object printing” operations on variables. Currently, LLDB supports only Objective-C printing, using the object’s description method. Turn this feature on by passing the -O flag to frame variable.

To select another frame to view, use the frame select command.

To move the view of the process up and down the stack, pass the --relative option (short form -r) . LLDB has the built-in aliases u and d, which behave like their GDB equivalents.

To view more complex data or change program data, use the general expression command. It takes an expression and evaluates it in the scope of the currently selected frame. For instance:

Executing Alternative Code

Expressions can also be used to call functions, as in this example:

The expression command is one of the raw commands. As a result, you don’t have to quote your whole expression, or backslash protect quotes, and so forth.

The results of the expressions are stored in persistent variables (of the form $[0-9]+) that you can use in further expressions, such as:



Copyright © 2013 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2013-09-18

Download affinic debugger gui (gdb/lldb for mac)

Unlike the software developed for Windows system, most of the applications installed in Mac OS X generally can be removed with relative ease. Affinic Debugger GUI (GDB/LLDB) is a third party application that provides additional functionality to OS X system and enjoys a popularity among Mac users. However, instead of installing it by dragging its icon to the Application folder, uninstalling Affinic Debugger GUI (GDB/LLDB) may need you to do more than a simple drag-and-drop to the Trash.

Download Mac App Remover

When installed, Affinic Debugger GUI (GDB/LLDB) creates files in several locations. Generally, its additional files, such as preference files and application support files, still remains on the hard drive after you delete Affinic Debugger GUI (GDB/LLDB) from the Application folder, in case that the next time you decide to reinstall it, the settings of this program still be kept. But if you are trying to uninstall Affinic Debugger GUI (GDB/LLDB) in full and free up your disk space, removing all its components is highly necessary. Continue reading this article to learn about the proper methods for uninstalling Affinic Debugger GUI (GDB/LLDB).

Manually uninstall Affinic Debugger GUI (GDB/LLDB) step by step:

Most applications in Mac OS X are bundles that contain all, or at least most, of the files needed to run the application, that is to say, they are self-contained. Thus, different from the program uninstall method of using the control panel in Windows, Mac users can easily drag any unwanted application to the Trash and then the removal process is started. Despite that, you should also be aware that removing an unbundled application by moving it into the Trash leave behind some of its components on your Mac. To fully get rid of Affinic Debugger GUI (GDB/LLDB) from your Mac, you can manually follow these steps:

1. Terminate Affinic Debugger GUI (GDB/LLDB) process(es) via Activity Monitor

Before uninstalling Affinic Debugger GUI (GDB/LLDB), you’d better quit this application and end all its processes. If Affinic Debugger GUI (GDB/LLDB) is frozen, you can press Cmd +Opt + Esc, select Affinic Debugger GUI (GDB/LLDB) in the pop-up windows and click Force Quit to quit this program (this shortcut for force quit works for the application that appears but not for its hidden processes).

Open Activity Monitor in the Utilities folder in Launchpad, and select All Processes on the drop-down menu at the top of the window. Select the process(es) associated with Affinic Debugger GUI (GDB/LLDB) in the list, click Quit Process icon in the left corner of the window, and click Quit in the pop-up dialog box (if that doesn’t work, then try Force Quit).

2. Delete Affinic Debugger GUI (GDB/LLDB) application using the Trash

First of all, make sure to log into your Mac with an administrator account, or you will be asked for a password when you try to delete something.

Open the Applications folder in the Finder (if it doesn’t appear in the sidebar, go to the Menu Bar, open the “Go” menu, and select Applications in the list), search for Affinic Debugger GUI (GDB/LLDB) application by typing its name in the search field, and then drag it to the Trash (in the dock) to begin the uninstall process. Alternatively you can also click on the Affinic Debugger GUI (GDB/LLDB) icon/folder and move it to the Trash by pressing Cmd + Del or choosing the File and Move to Trash commands.

For the applications that are installed from the App Store, you can simply go to the Launchpad, search for the application, click and hold its icon with your mouse button (or hold down the Option key), then the icon will wiggle and show the “X” in its left upper corner. Click the “X” and click Delete in the confirmation dialog.

Download Mac App Remover
3. Remove all components related to Affinic Debugger GUI (GDB/LLDB) in Finder

Though Affinic Debugger GUI (GDB/LLDB) has been deleted to the Trash, its lingering files, logs, caches and other miscellaneous contents may stay on the hard disk. For complete removal of Affinic Debugger GUI (GDB/LLDB), you can manually detect and clean out all components associated with this application. You can search for the relevant names using Spotlight. Those preference files of Affinic Debugger GUI (GDB/LLDB) can be found in the Preferences folder within your user’s library folder (~/Library/Preferences) or the system-wide Library located at the root of the system volume (/Library/Preferences/), while the support files are located in '~/Library/Application Support/' or '/Library/Application Support/'.

Open the Finder, go to the Menu Bar, open the “Go” menu, select the entry:|Go to Folder... and then enter the path of the Application Support folder:~/Library

Search for any files or folders with the program’s name or developer’s name in the ~/Library/Preferences/, ~/Library/Application Support/ and ~/Library/Caches/ folders. Right click on those items and click Move to Trash to delete them.

Meanwhile, search for the following locations to delete associated items:

  • /Library/Preferences/
  • /Library/Application Support/
  • /Library/Caches/

Besides, there may be some kernel extensions or hidden files that are not obvious to find. In that case, you can do a Google search about the components for Affinic Debugger GUI (GDB/LLDB). Usually kernel extensions are located in in /System/Library/Extensions and end with the extension .kext, while hidden files are mostly located in your home folder. You can use Terminal (inside Applications/Utilities) to list the contents of the directory in question and delete the offending item.

4. Empty the Trash to fully remove Affinic Debugger GUI (GDB/LLDB)

If you are determined to delete Affinic Debugger GUI (GDB/LLDB) permanently, the last thing you need to do is emptying the Trash. To completely empty your trash can, you can right click on the Trash in the dock and choose Empty Trash, or simply choose Empty Trash under the Finder menu (Notice: you can not undo this act, so make sure that you haven’t mistakenly deleted anything before doing this act. If you change your mind, before emptying the Trash, you can right click on the items in the Trash and choose Put Back in the list). In case you cannot empty the Trash, reboot your Mac.

Download Mac App Remover

Tips for the app with default uninstall utility:

You may not notice that, there are a few of Mac applications that come with dedicated uninstallation programs. Though the method mentioned above can solve the most app uninstall problems, you can still go for its installation disk or the application folder or package to check if the app has its own uninstaller first. If so, just run such an app and follow the prompts to uninstall properly. After that, search for related files to make sure if the app and its additional files are fully deleted from your Mac.

Automatically uninstall Affinic Debugger GUI (GDB/LLDB) with MacRemover (recommended):

No doubt that uninstalling programs in Mac system has been much simpler than in Windows system. But it still may seem a little tedious and time-consuming for those OS X beginners to manually remove Affinic Debugger GUI (GDB/LLDB) and totally clean out all its remnants. Why not try an easier and faster way to thoroughly remove it?

If you intend to save your time and energy in uninstalling Affinic Debugger GUI (GDB/LLDB), or you encounter some specific problems in deleting it to the Trash, or even you are not sure which files or folders belong to Affinic Debugger GUI (GDB/LLDB), you can turn to a professional third-party uninstaller to resolve troubles. Here MacRemover is recommended for you to accomplish Affinic Debugger GUI (GDB/LLDB) uninstall within three simple steps. MacRemover is a lite but powerful uninstaller utility that helps you thoroughly remove unwanted, corrupted or incompatible apps from your Mac. Now let’s see how it works to complete Affinic Debugger GUI (GDB/LLDB) removal task.

1. Download MacRemover and install it by dragging its icon to the application folder.
2. Launch MacRemover in the dock or Launchpad, select Affinic Debugger GUI (GDB/LLDB) appearing on the interface, and click Run Analysis button to proceed.
3. Review Affinic Debugger GUI (GDB/LLDB) files or folders, click Complete Uninstall button and then click Yes in the pup-up dialog box to confirm Affinic Debugger GUI (GDB/LLDB) removal.

The whole uninstall process may takes even less than one minute to finish, and then all items associated with Affinic Debugger GUI (GDB/LLDB) has been successfully removed from your Mac!

Mac)

Benefits of using MacRemover:

MacRemover has a friendly and simply interface and even the first-time users can easily operate any unwanted program uninstallation. With its unique Smart Analytic System, MacRemover is capable of quickly locating every associated components of Affinic Debugger GUI (GDB/LLDB) and safely deleting them within a few clicks. Thoroughly uninstalling Affinic Debugger GUI (GDB/LLDB) from your mac with MacRemover becomes incredibly straightforward and speedy, right? You don’t need to check the Library or manually remove its additional files. Actually, all you need to do is a select-and-delete move. As MacRemover comes in handy to all those who want to get rid of any unwanted programs without any hassle, you’re welcome to download it and enjoy the excellent user experience right now!

This article provides you two methods (both manually and automatically) to properly and quickly uninstall Affinic Debugger GUI (GDB/LLDB), and either of them works for most of the apps on your Mac. If you confront any difficulty in uninstalling any unwanted application/software, don’t hesitate to apply this automatic tool and resolve your troubles.

Download Mac App Remover